Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManager.java =================================================================== diff -u -r20412 -r20421 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManager.java (.../ClassifyBasketManager.java) (revision 20412) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManager.java (.../ClassifyBasketManager.java) (revision 20421) @@ -21,5 +21,5 @@ * @param barcode 篮筐条码 */ public ClassifyBasket getUnWashedAndUnPackingBasket(String barcode); - + public ClassifyBasket getClassifyBasket(Long recyclingRecordId,String barcode); } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/ClassifyBasketRecyclingSequenceManagerImpl.java =================================================================== diff -u -r20041 -r20421 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/ClassifyBasketRecyclingSequenceManagerImpl.java (.../ClassifyBasketRecyclingSequenceManagerImpl.java) (revision 20041) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/ClassifyBasketRecyclingSequenceManagerImpl.java (.../ClassifyBasketRecyclingSequenceManagerImpl.java) (revision 20421) @@ -1,6 +1,7 @@ package com.forgon.disinfectsystem.packing.service; import java.util.Collection; +import java.util.List; import org.apache.commons.collections4.CollectionUtils; @@ -48,6 +49,14 @@ recyclingRecordId,classifyBasketId,tousseDefinitionId); return getFirst(where); } + @Override + public List getList(Long recyclingRecordId,Long tousseDefinitionId){ + if(!DatabaseUtil.isPoIdValid(recyclingRecordId) || !DatabaseUtil.isPoIdValid(tousseDefinitionId)){ + return null; + } + String where = String.format("recyclingRecordId=%d and tousseDefinitionId=%d",recyclingRecordId,tousseDefinitionId); + return getByHql(where); + } @Override public RecyclingBasketSequence getForUpdate(Long recyclingRecordId, Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/recyclingrecord/RecyclingBasketSequence.java =================================================================== diff -u -r19869 -r20421 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/recyclingrecord/RecyclingBasketSequence.java (.../RecyclingBasketSequence.java) (revision 19869) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/recyclingrecord/RecyclingBasketSequence.java (.../RecyclingBasketSequence.java) (revision 20421) @@ -35,6 +35,11 @@ * 篮筐实例在这个回收记录中的序号 */ private Integer sequence; + /** + * 是否已装配 + */ + private Boolean packed; + @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { @@ -64,8 +69,26 @@ public Integer getSequence() { return sequence; } + public int safelyGetSequence() { + if(sequence == null){ + return 0; + } + return sequence; + } public void setSequence(Integer sequence) { this.sequence = sequence; } + public boolean packed() { + if(packed == null){ + return false; + } + return packed; + } + public Boolean getPacked() { + return packed; + } + public void setPacked(Boolean packed) { + this.packed = packed; + } } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r20353 -r20421 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 20353) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 20421) @@ -26,7 +26,6 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import net.sf.json.util.JSONUtils; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.collections4.CollectionUtils; @@ -51,6 +50,7 @@ import com.forgon.directory.vo.LoginUserData; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; import com.forgon.disinfectsystem.basedata.becleanitem.service.BeCleanItemManager; +import com.forgon.disinfectsystem.basedata.becleanitem.service.ClassifyBasketManager; import com.forgon.disinfectsystem.basedatamanager.container.service.ContainerManager; import com.forgon.disinfectsystem.basedatamanager.container.service.ReviewedBasketManager; import com.forgon.disinfectsystem.basedatamanager.goodsstock.service.GoodsStockManager; @@ -208,6 +208,12 @@ private ClassifyBasketRecyclingSequenceManager classifyBasketRecyclingSequenceManager; + private ClassifyBasketManager classifyBasketManager; + + public void setClassifyBasketManager(ClassifyBasketManager classifyBasketManager) { + this.classifyBasketManager = classifyBasketManager; + } + public void setClassifyBasketRecyclingSequenceManager( ClassifyBasketRecyclingSequenceManager classifyBasketRecyclingSequenceManager) { this.classifyBasketRecyclingSequenceManager = classifyBasketRecyclingSequenceManager; @@ -1302,7 +1308,16 @@ if(StringUtils.isBlank(taskGroup)){ throw new RuntimeException("任务组不能为空"); } - + boolean allowForeignToussePartiallyPacking = CssdUtils.getSystemSetConfigByNameBool("allowForeignToussePartiallyPacking"); + Container basket = null; + if(StringUtils.isNotBlank(basketBarcode)){ + //验证篮筐是否清洗 + basket = containerManager + .getContainerByBarcode(basketBarcode); + if(basket == null){ + return null;// 未找到篮筐,异常情况 + } + } SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); //普通器械包、消毒物品及敷料包的装配任务查询 @@ -1356,8 +1371,28 @@ WaitPackingTaskItemVo itemVo = new WaitPackingTaskItemVo(); itemVo.setTaskId(task.getId()); itemVo.setSerialNumber(serialNumManager.variablePart(serialNum, task.getSerialNumber())); - itemVo.setBasketName(task.getRecyclingBasketName()); - itemVo.setBasketBarcode(task.getBasketBarcode()); + + if(StringUtils.isNotBlank(basketBarcode) && td.isForeignTousse() && allowForeignToussePartiallyPacking ){ + // 看所有拆分的包是否已经装完。 + ClassifyBasket classifyBasket = classifyBasketManager.getClassifyBasket(task.getSourceId(), basketBarcode); + if(classifyBasket == null){ + continue; + } + RecyclingBasketSequence sequence = classifyBasketRecyclingSequenceManager.get(task.getSourceId(), classifyBasket.getId(), td.getId()); + if(sequence == null || sequence.getSequence() == null){ + continue; + } + List sequenceList = classifyBasketRecyclingSequenceManager.getList(task.getSourceId(), td.getId()); + if(CollectionUtils.isEmpty(sequenceList)){ + continue; + } + String suffix = formatSplitTousseNameSuffixByConfig(sequenceList.size(),sequence.getSequence()); + itemVo.setBasketName(classifyBasket.getContainerName()+suffix); + itemVo.setBasketBarcode(classifyBasket.getContainerBarcode()); + }else{ + itemVo.setBasketName(task.getRecyclingBasketName()); + itemVo.setBasketBarcode(task.getBasketBarcode()); + } itemVo.setDepartment(task.getDepartment()); itemVo.setUrgentAmount(task.getUrgentAmount()); itemVo.setTousseType(td.getTousseType()); @@ -1601,7 +1636,7 @@ */ private List findPackingTaskFromCssdHandleToussesConfig(String taskGroup,String basketBarcode,SupplyRoomConfig config) { String orgCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); - String sql = "select po.recyclingItemRemark,po.serialNumber,po.urgentLevel,po.errorRemark,po.damageRemark, po.id as taskId,recyclingBasketName,basketBarcode,department,status,washTime,startTime,unPackAmount,taskType,idCardBarcode," + String sql = "select po.sourceId, po.recyclingItemRemark,po.serialNumber,po.urgentLevel,po.errorRemark,po.damageRemark, po.id as taskId,recyclingBasketName,basketBarcode,department,status,washTime,startTime,unPackAmount,taskType,idCardBarcode," + "td.id as tousseDefinitionId,td.invoicePlanID,td.name,td.allowModifyPackageType,td.isDisableIDCard,td.tousseType,td.packagetype,td.sterilingMethod,td.isTraceable," + "td.isPrint,td.isReview,td.note,td.uuid_vedioNames,td.isUploadVideo,td.supplierName,urgentAmount,hidePackingTask from PackingTask po , CssdHandleTousses ct , TousseDefinition td " + "where po.tousseDefinition_id = td.id and ct.tousseDefinitionId=td.ancestorID and po.orgUnitCoding = ct.orgUnitCode " @@ -1645,16 +1680,20 @@ */ private List findForeignToussePackingTask(String basketBarcode) { String orgCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); - String sql = "select po.recyclingItemRemark,po.serialNumber,po.errorRemark,po.damageRemark, po.id as taskId,recyclingBasketName,basketBarcode,department,status,washTime,startTime,unPackAmount,taskType,idCardBarcode," + String sql = "select po.sourceId, po.recyclingItemRemark,po.serialNumber,po.errorRemark,po.damageRemark, po.id as taskId,recyclingBasketName,basketBarcode,department,status,washTime,startTime,unPackAmount,taskType,idCardBarcode," + "td.id as tousseDefinitionId,td.invoicePlanID,td.name,td.allowModifyPackageType,td.isDisableIDCard,td.tousseType,td.packagetype,td.sterilingMethod,td.isTraceable," + "td.isPrint,td.isReview,td.note,td.uuid_vedioNames,td.isUploadVideo,td.supplierName,urgentAmount,urgentLevel,hidePackingTask from PackingTask po , TousseDefinition td " + "where po.tousseDefinition_id = td.id " + " and (td.tousseType='"+TousseDefinition.PACKAGE_TYPE_FOREIGN + "' or td.tousseType='" + TousseDefinition.PACKAGE_TYPE_SPLIT + "')" + " and po.orgUnitCoding = '" + orgCode + "'"; + Container basket = null; if(StringUtils.isNotBlank(basketBarcode)){ //验证篮筐是否清洗 - Container basket = containerManager + basket = containerManager .getContainerByBarcode(basketBarcode); + if(basket == null){ + return null;// 未找到篮筐,异常情况 + } if (basket != null) { String status = basket.getStatus(); if (Container.CONTAINER_STATUS_WASHLOADING.equals(status) @@ -1677,7 +1716,7 @@ private List findCustomerToussePackingTask(String basketBarcode) { List queryResult = new ArrayList(); String orgCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); - String sql = "select po.recyclingItemRemark,po.serialNumber, po.errorRemark,po.damageRemark, po.id as taskId,recyclingBasketName,basketBarcode,department,status,washTime,startTime,unPackAmount,taskType,idCardBarcode," + String sql = "select po.sourceId, po.recyclingItemRemark,po.serialNumber, po.errorRemark,po.damageRemark, po.id as taskId,recyclingBasketName,basketBarcode,department,status,washTime,startTime,unPackAmount,taskType,idCardBarcode," + "td.id as tousseDefinitionId,td.invoicePlanID,td.name,td.allowModifyPackageType,td.isDisableIDCard,td.tousseType,td.packagetype,td.sterilingMethod,td.isTraceable," + "td.isPrint,td.isReview,td.note,td.uuid_vedioNames,td.isUploadVideo,td.supplierName,urgentAmount,urgentLevel,hidePackingTask from PackingTask po , TousseDefinition td " + "where po.tousseDefinition_id = td.id and td.tousseType='"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"' and po.orgUnitCoding = '" + orgCode + "'"; @@ -1713,10 +1752,12 @@ BigDecimal taskIdBigDecimal = (BigDecimal)rs.getObject("taskId"); + BigDecimal sourceIdBigDecimal = (BigDecimal)rs.getObject("sourceId"); Number unPackAmount = (Number)rs.getObject("unPackAmount"); Number taskType = (Number)rs.getObject("taskType"); Number urgentAmount = (Number)rs.getObject("urgentAmount"); task.setId(taskIdBigDecimal == null ? null : taskIdBigDecimal.longValue()); + task.setSourceId(sourceIdBigDecimal == null ? null : sourceIdBigDecimal.longValue()); task.setRecyclingBasketName(rs.getString("recyclingBasketName")); task.setBasketBarcode(rs.getString("basketBarcode")); task.setDepartment(rs.getString("department")); @@ -2595,7 +2636,7 @@ String washBasket,ForeignTousseApplication foreignTousseApplication,String orgUnitCoding, String orgUnitName, Date packingDate,String tousseWeight,String remark, PackingTask currentPackingTask,Map idToWashRecordMap, Map idToRecyclingRecordMap,Date sterileStartTime) { - + boolean allowForeignToussePartiallyPacking = CssdUtils.getSystemSetConfigByNameBool("allowForeignToussePartiallyPacking"); // 外来器械拆包后价格从系统参数拿 SupplyRoomConfig config = supplyRoomConfigManager .getSystemParamsObj(); @@ -2688,6 +2729,32 @@ } + private boolean isForeignToussePackedComplete(TousseDefinition tousseDefinition,Long recyclingRecordId){ + List list = classifyBasketRecyclingSequenceManager.getList(recyclingRecordId, tousseDefinition.getId()); + if(CollectionUtils.isEmpty(list)){ + return false; + } + for (RecyclingBasketSequence recyclingBasketSequence : list) { + if(!recyclingBasketSequence.packed()){ + return false; + } + } + return true; + } + + private String formatSplitTousseNameSuffixByConfig(int count,int splitIndex){ + boolean nameIncludeSplitTotalAmountForSplitForeignTousse = CssdUtils.getSystemSetConfigByNameBool("nameIncludeSplitTotalAmountForSplitForeignTousse"); + String splitSuffix = "(部分" + splitIndex + ")"; + if(nameIncludeSplitTotalAmountForSplitForeignTousse){ + splitSuffix = "(" + splitIndex + "/" + count + ")"; + }else{ + int splitForeignTousseNameStyle = CssdUtils.getSystemSetConfigByNameInt("splitForeignTousseNameStyle",0); + if(splitForeignTousseNameStyle == 1){ + splitSuffix = "(" + count + "-" + splitIndex + ")"; + } + } + return splitSuffix; + } /** * 创建装配记录 * @param inspector @@ -2708,6 +2775,7 @@ private PackingRecord createPackingRecord(String inspector, String operator, String wrapper, String orgUnitCoding,String orgUnitName, String taskGroup, String sterilizer, String frequency, TousseDefinition tousseDefinition, Date packingDate, Integer packingAmount, PackingTask currentPackingTask , List packingTaskList) { + boolean allowForeignToussePartiallyPacking = CssdUtils.getSystemSetConfigByNameBool("allowForeignToussePartiallyPacking"); PackingRecord packingRecord = new PackingRecord(); packingRecord.setIsDirectPacking(false); packingRecord.setSterilizer(sterilizer); @@ -2739,6 +2807,7 @@ packingAmount = totalUnPackingAmount; } } + packingRecord.setAmount(packingAmount); packingRecord.setTaskGroup(taskGroup); @@ -3098,10 +3167,11 @@ * @param packageType * @return */ - private String buildForeignTousseSplitPackages(PackingTask task,SupplyRoomConfig sysConfig,String packageType){ + private String buildForeignTousseSplitPackages(PackingTask task,SupplyRoomConfig sysConfig,String packageType,Set scannedBasketBarcodesSet ){ if(task == null){ return null; } + boolean allowForeignToussePartiallyPacking = CssdUtils.getSystemSetConfigByNameBool("allowForeignToussePartiallyPacking"); TousseDefinition tousseDefinition = task.getTousseDefinition(); if(tousseDefinition != null){ @@ -3118,9 +3188,9 @@ Map implantGoodsMap = findMaterialIsImplantGoods(tousseDefinition); String sql = String - .format("select po.classifybasket_id,po.name,po.amount,po.materialdefinition_id from %s po where po.recyclingRecordId = %s " + .format("select po.classifybasket_id,po.name,po.amount,po.materialdefinition_id,b.containerBarcode from %s po inner join %s b on po.classifybasket_id=b.id where po.recyclingRecordId = %s " + "and po.tousseDefinitionID = %s and po.basketGroupBarcodes = '%s' and po.itemType = '%s'", - ClassifiedItem.class.getSimpleName(), task.getSourceId(), tousseDefinition.getId(), task.getBasketBarcode(), + ClassifiedItem.class.getSimpleName(),ClassifyBasket.class.getSimpleName(), task.getSourceId(), tousseDefinition.getId(), task.getBasketBarcode(), ClassifiedItem.TYPE_MATERIAL); ResultSet rs = objectDao.executeSql(sql); @@ -3134,9 +3204,26 @@ String materilName = rs.getString(2); Integer amount = rs.getInt(3); Long materialDefinitionId = rs.getLong(4); + String containerBarcode = rs.getString("containerBarcode"); ForeignTousseSplitVo packageObj = map.get(classifyBasketId); + if(allowForeignToussePartiallyPacking){ + // 是否扫了当前篮筐 + if(!scannedBasketBarcodesSet.contains(containerBarcode)){ + continue; + } + } if(packageObj == null){ RecyclingBasketSequence sequence = classifyBasketRecyclingSequenceManager.get(task.getSourceId(), classifyBasketId, tousseDefinition.getId()); + if(allowForeignToussePartiallyPacking){ + if(sequence == null){ + throw new RuntimeException("外来器械允许部分装配时,必须启用篮筐序号!"); + } + if(sequence.packed()){ + throw new RuntimeException(String.format("篮筐%s里的外来器械已装配!", containerBarcode)); + } + sequence.setPacked(true); + objectDao.update(sequence); + } packageObj = new ForeignTousseSplitVo(); Integer seq = sequence != null&&sequence.getSequence() != null?sequence.getSequence():0; packageObj.setSplitIndex(seq != null&&seq > 0?seq:i); @@ -3242,6 +3329,7 @@ String taskGroup = JSONUtil.optString(paramsObj, "taskGroup", null); String splitPackages = JSONUtil.optString(paramsObj, "splitPackage", null); String basketBarcode = JSONUtil.optString(paramsObj, "basketBarcode", null); + String scannedBasketBarcodes = JSONUtil.optString(paramsObj, "basketBarcode", null); String idCardDefinitionId = JSONUtil.optString(paramsObj, "idCardDefinitionId", null); String idCardInstanceID = JSONUtil.optString(paramsObj, "idCardInstanceID", null); String sterilizerName = JSONUtil.optString(paramsObj, "sterilizer", null); @@ -3290,6 +3378,12 @@ String sterileDateToPrint = ""; boolean markTousse = false; + Set scannedBasketBarcodesSet = new HashSet(); + if(StringUtils.isNotBlank(scannedBasketBarcodes)){ + for (String scannedBasketBarcode : scannedBasketBarcodes.split(";")) { + scannedBasketBarcodesSet.add(scannedBasketBarcode); + } + } // 失效期和预警期计算 JSONObject expirationObj = expirationDateInfoManager .getExpirationDate(sterileStartTime.getTime() + "", packageType); @@ -3553,7 +3647,7 @@ } if(td.isForeignTousse() && StringUtils.isBlank(splitPackages)){ - splitPackages = buildForeignTousseSplitPackages(currentPackingTask,supplyRoomConfigParams,packageType); + splitPackages = buildForeignTousseSplitPackages(currentPackingTask,supplyRoomConfigParams,packageType,scannedBasketBarcodesSet); } // 外来器械包(拆分成多个包) @@ -3838,9 +3932,9 @@ // 将用户打包时常用的字段记录到session中 updatePackingConfigSession(session, inspector, inspectorCode, operator, operatorCode, reviewer, reviewerCode,sterileUserName,sterileUserCode,wrapper, wrapperCode, packageType, sterilingType, sterilizerName, sterileFrequency); -// if(true){ -// throw new RuntimeException("装配速度测试 "); -// } + if(true){ + throw new RuntimeException("装配速度测试 "); + } return json.toString(); } @@ -4417,6 +4511,8 @@ */ private void updatePackingTask(List packingTaskList, Integer currentPackAmount , String tousseName,String basketBarcode){ int leftAmount = currentPackAmount; + boolean allowForeignToussePartiallyPacking = CssdUtils.getSystemSetConfigByNameBool("allowForeignToussePartiallyPacking"); + Map map = new HashMap(); for(PackingTask packingTask : packingTaskList){ Integer unPackAmount = packingTask.getUnPackAmount(); @@ -4428,6 +4524,11 @@ if(unPackAmount < 0){ throw new RuntimeException("保存失败!"); } + TousseDefinition tousseDefinition = packingTask.getTousseDefinition(); + if(tousseDefinition.isForeignTousse() && allowForeignToussePartiallyPacking && !isForeignToussePackedComplete(tousseDefinition, packingTask.getSourceId())){ + // 部分装配的外来器械,并且还未装完。 + break; + } if(leftAmount >= unPackAmount){ leftAmount -= unPackAmount; //待补充数量 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManagerImpl.java =================================================================== diff -u -r20412 -r20421 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManagerImpl.java (.../ClassifyBasketManagerImpl.java) (revision 20412) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManagerImpl.java (.../ClassifyBasketManagerImpl.java) (revision 20421) @@ -2,10 +2,12 @@ import java.util.List; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import com.forgon.disinfectsystem.basedatamanager.container.service.ContainerManager; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; +import com.forgon.disinfectsystem.entity.becleanitem.ClassifiedItem; import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; import com.forgon.tools.hibernate.BasePoManagerImpl; @@ -80,4 +82,16 @@ } return null; } + + public ClassifyBasket getClassifyBasket(Long recyclingRecordId,String barcode){ + String sql = String + .format("select po from %s po inner join fetch po.recyclingRecords rd where rd.id = %s " + + " and po.containerBarcode = '%s' ", + ClassifyBasket.class.getSimpleName(),recyclingRecordId, barcode); + List list = objectDao.findByHql(sql); + if(CollectionUtils.isEmpty(list)){ + return null; + } + return (ClassifyBasket)list.get(0); + } } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/ClassifyBasketRecyclingSequenceManager.java =================================================================== diff -u -r20041 -r20421 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/ClassifyBasketRecyclingSequenceManager.java (.../ClassifyBasketRecyclingSequenceManager.java) (revision 20041) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/ClassifyBasketRecyclingSequenceManager.java (.../ClassifyBasketRecyclingSequenceManager.java) (revision 20421) @@ -1,6 +1,7 @@ package com.forgon.disinfectsystem.packing.service; import java.util.Collection; +import java.util.List; import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingBasketSequence; import com.forgon.tools.hibernate.BasePoManager; @@ -22,7 +23,15 @@ * @return */ public RecyclingBasketSequence get(Long recyclingRecordId,Long classifyBasketId,Long tousseDefinitionId); + /** + * 获取对象 + * @param recyclingRecordId + * @param tousseDefinitionId + * @return + */ + public List getList(Long recyclingRecordId,Long tousseDefinitionId); + /** * 获取对象并锁定 * @param recyclingRecordId * @param classifyBasketId Index: ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js =================================================================== diff -u -r20393 -r20421 --- ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 20393) +++ ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 20421) @@ -19,6 +19,7 @@ packingBtnText = "装配无菌物品"; } var packingPageAutoSetSterilizationProgramAfterSelectTousse = true; +var allowForeignToussePartiallyPacking = false; var taskGroupObj = null; //丢失报损按钮响应函数 var onErrorDamageBtnClick = null; @@ -165,6 +166,7 @@ Ext4.onReady(function() { taskGroupObj = getTaskGroupObjByName(taskGroup); packingPageAutoSetSterilizationProgramAfterSelectTousse = getBoolValueFromJs('sstsConfig.packingPageAutoSetSterilizationProgramAfterSelectTousse',true); + allowForeignToussePartiallyPacking = getBoolValueFromJs('sstsConfig.allowForeignToussePartiallyPacking',false); Ext4.QuickTips.init(); Ext4.BLANK_IMAGE_URL = WWWROOT + '/ext/resources/images/default/s.gif'; @@ -534,7 +536,9 @@ var invoicePlanId = record.get('invoicePlanId'); var packageType = record.get('packageType'); var sterilingMethod = record.get('sterilingMethod'); - str += ""; + if(!allowForeignToussePartiallyPacking){ + str += ""; + } } } return str; @@ -3238,6 +3242,15 @@ var cNode = childNodes[m]; if(cNode.get('taskId') == taskId){ sigle = false; + if(haveForeignTousseNode && allowForeignToussePartiallyPacking){ + var cNodeBasketName = cNode.get('basketName'); + var cNodeBasketBarcode = cNode.get('basketBarcode'); + var basketBarcodeArr = cNodeBasketBarcode.split(';'); + if(!Ext4.Array.contains(basketBarcodeArr,basketBarcode)){ + cNode.set('basketName',cNodeBasketName+';'+basketName); + cNode.set('basketBarcode',cNodeBasketBarcode+';'+basketBarcode); + } + } break; } }