Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/packing/PackingTask.java =================================================================== diff -u -r18351 -r18470 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/packing/PackingTask.java (.../PackingTask.java) (revision 18351) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/packing/PackingTask.java (.../PackingTask.java) (revision 18470) @@ -140,7 +140,22 @@ * 加急等级 */ private String urgentLevel; - + /** + * 重新装配生成的装配任务,回收单的id + */ + private Long rpRecyclingRecordId; + /** + * 重新装配生成的装配任务,申请单的id + */ + private Long rpInvoicePlanceId; + /** + * 重新装配清洗篮筐的所有id,以分号分开 + */ + private String classifyBasketIds; + /** + * 重新装配生成的装配任务,回收人 + */ + private String rpRecyclingOperator; @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { @@ -150,7 +165,39 @@ public void setId(Long id) { this.id = id; } + + public String getRpRecyclingOperator() { + return rpRecyclingOperator; + } + public void setRpRecyclingOperator(String rpRecyclingOperator) { + this.rpRecyclingOperator = rpRecyclingOperator; + } + + public String getClassifyBasketIds() { + return classifyBasketIds; + } + + public void setClassifyBasketIds(String classifyBasketIds) { + this.classifyBasketIds = classifyBasketIds; + } + + public Long getRpRecyclingRecordId() { + return rpRecyclingRecordId; + } + + public void setRpRecyclingRecordId(Long rpRecyclingRecordId) { + this.rpRecyclingRecordId = rpRecyclingRecordId; + } + + public Long getRpInvoicePlanceId() { + return rpInvoicePlanceId; + } + + public void setRpInvoicePlanceId(Long rpInvoicePlanceId) { + this.rpInvoicePlanceId = rpInvoicePlanceId; + } + public Date getStartTime() { return startTime; } Index: ssts-web/src/main/webapp/disinfectsystem/qualitymonitoring/qualitymonitoringInstanceForm.js =================================================================== diff -u -r18337 -r18470 --- ssts-web/src/main/webapp/disinfectsystem/qualitymonitoring/qualitymonitoringInstanceForm.js (.../qualitymonitoringInstanceForm.js) (revision 18337) +++ ssts-web/src/main/webapp/disinfectsystem/qualitymonitoring/qualitymonitoringInstanceForm.js (.../qualitymonitoringInstanceForm.js) (revision 18470) @@ -634,9 +634,10 @@ var tousseInstanceId = Ext.getCmp('tousseInstanceId').getValue(); if(tousseType==PACKAGE_TYPE_FOREIGN || tousseType==PACKAGE_TYPE_SPLIT){ + disableRecycleCanRepacking(); + }else + if(isUndefinedOrNullOrEmpty(tousseInstanceId)){ disableRecycleAndRepacking(); - }else if(isUndefinedOrNullOrEmpty(tousseInstanceId)){ - disableRecycleAndRepacking(); }else{ enableRecycleAndRepacking(); var toussedefRecycling = Ext.getCmp('tousseDefRecycling').getValue(); @@ -674,6 +675,16 @@ Ext.getCmp('recycle').setValue(false); Ext.getCmp('repacking').setValue(false); } +//不能重新回收,可以重新装配 +function disableRecycleCanRepacking(){ + Ext.getCmp('isRecycle').setValue(''); + Ext.getCmp('isRepacking').setValue(''); + Ext.getCmp('recycle').disable(); + Ext.getCmp('repacking').enable(); + + Ext.getCmp('recycle').setValue(false); + Ext.getCmp('repacking').setValue(false); +} function enableRecycleAndRepacking(){ Ext.getCmp('recycle').enable(); Ext.getCmp('repacking').enable(); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r18346 -r18470 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 18346) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 18470) @@ -1620,7 +1620,7 @@ } /** - * 查询自定义器械包的待装配装配任务集合(按科室供应室配置的任务组查询) + * 查询外来器械器械包、外来器械拆分小包的待装配装配任务集合(按科室供应室配置的任务组查询) * @param taskGroup * @param basketBarcode * @return 同时返回PackingTask和TousseDefintion两个实体类,避免多次查询 @@ -1630,7 +1630,9 @@ String sql = "select po.errorRemark,po.damageRemark, po.id as taskId,recyclingBasketName,basketBarcode,department,status,washTime,startTime,unPackAmount,taskType,idCardBarcode," + "td.id as tousseDefinitionId,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 from PackingTask po , TousseDefinition td " - + "where po.tousseDefinition_id = td.id and td.tousseType='"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"' and po.orgUnitCoding = '" + orgCode + "'"; + + "where po.tousseDefinition_id = td.id " + + " and (td.tousseType='"+TousseDefinition.PACKAGE_TYPE_FOREIGN + "' or td.tousseType='" + TousseDefinition.PACKAGE_TYPE_SPLIT + "')" + + " and po.orgUnitCoding = '" + orgCode + "'"; if(StringUtils.isNotBlank(basketBarcode)){ //验证篮筐是否清洗 Container basket = containerManager @@ -3374,10 +3376,13 @@ break; } PackingTask currentPackingTask = packingTaskMap.get(tdName); + TousseDefinition td = currentPackingTask.getTousseDefinition(); + String tousseType = td.getTousseType(); String tousseName = tdName; Integer printAmount = td.getPrintAmount(); + JSONObject toolAndImplantAmount = tousseDefinitionManager.getToolAndImplantAmount(td); Map disposableGoodsIdToAmount = null; /* @@ -3406,12 +3411,12 @@ // } // } // } - - // 外来器械包(未拆分成多个包) - if (td.isForeignTousse()) { + long foreignTousseApp_id = 0; + if (td.isForeignOrSplitTousse()) { Long foreignTousseApplicationID = td.getInvoicePlanID(); foreignTousseApplication = (ForeignTousseApplication) objectDao.getByProperty( ForeignTousseApplication.class.getSimpleName(), "id",foreignTousseApplicationID); + foreignTousseApp_id = foreignTousseApplication.getId().longValue(); } // 消毒物品 else if (td.isDisinfection()) { @@ -3622,19 +3627,14 @@ } } - // 普通包和未拆分的外来器械包 else{ - JSONObject toolAndImplantAmount = tousseDefinitionManager.getToolAndImplantAmount(td); - String isBigPackage = "否"; - long foreignTousseApp_id = 0; String supplierName = ""; - if (TousseDefinition.PACKAGE_TYPE_FOREIGN - .equals(tousseType)) { - foreignTousseApp_id = foreignTousseApplication.getId().longValue(); + if (TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tousseType) + || TousseDefinition.PACKAGE_TYPE_SPLIT.equals(tousseType)) { supplierName = td.getSupplierName(); } @@ -3849,6 +3849,8 @@ newTousseDefinition.setPrintAmount(td.getPrintAmount()); newTousseDefinition.setParentID(td.getId()); newTousseDefinition.setIncludeImplant(includeImplantFlag); + newTousseDefinition.setInvoicePlanID(td.getInvoicePlanID()); + newTousseDefinition.setRecyclingApplicationID(td.getRecyclingApplicationID()); tousseDefinitionManager.saveOrUpdate(newTousseDefinition); newTousseDefinition.setAncestorID(newTousseDefinition.getId()); return newTousseDefinition; @@ -4559,11 +4561,15 @@ WashAndDisinfectRecord lastWashRecord = washAndDisinfectRecordManager.getWashAndDisinfectRecordById("" + washRecordId); washAndDisinfectRecordManager.setWashInfo(tousseInstance,lastWashRecord); } - + //质量监测重新装配,设置清洗的篮筐ids,回收人 + if (PackingTask.TASK_QUALITY_MONITOR.equals(currentPackingTask.getTaskType())){ + tousseInstance.setClassifyBasketIds(currentPackingTask.getClassifyBasketIds()); + tousseInstance.setRecyclingOperator(currentPackingTask.getRpRecyclingOperator()); + } tousseInstance.setPackingRecord_id(packingRecordId); - // 外来器械包关联外来器械申请单 - if (TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tousseType)) { + // 外来器械包,外来器械拆分小包关联外来器械申请单 + if (TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tousseType) || TousseDefinition.PACKAGE_TYPE_SPLIT.equals(tousseType)) { // 关联外来器械申请单 tousseInstance.setForeignTousseApp_id(foreignTousseApplication .getId()); @@ -4591,6 +4597,12 @@ tousseInstance.setInvoicePlanID(recyclingRecord .getRecyclingApplication().getId()); } + }else if (PackingTask.TASK_QUALITY_MONITOR.equals(currentPackingTask.getTaskType())) { + // 质量监测重新装配 sourceId要么是回收id,要么是申请单id,回收id优先. + tousseInstance.setRecyclingRecordId(currentPackingTask.getRpRecyclingRecordId()); + if(!DatabaseUtil.isPoIdValid(tousseInstance.getInvoicePlanID())){ + tousseInstance.setInvoicePlanID(currentPackingTask.getRpInvoicePlanceId()); + } } } return tousseInstance; @@ -4827,7 +4839,7 @@ return; } TousseDefinition td = tousseInstance.getTousseDefinition(); - if(td == null || td.isForeignOrSplitTousse()){ + if(td == null ){ return; } List tousseInstanceList = new ArrayList(); @@ -4928,10 +4940,12 @@ if(rr != null){ packingTask.setStartTime(rr.getRecyclingTime()); packingTask.setSourceId(rr.getId()); + packingTask.setRpRecyclingRecordId(rr.getId()); } if(invoicePlan != null){ packingTask.setDepartment(invoicePlan.getDepart()); packingTask.setDepartCoding(tousseInstance.getDepartCoding()); + packingTask.setRpInvoicePlanceId(tousseInstance.getInvoicePlanID()); } // SourceId 要么是回收单id,要么是申请单id,没有回收单时,用申请单id. if(packingTask.getSourceId() == null){ @@ -4956,7 +4970,10 @@ packingTask.setWashTime(washTime); packingTask.setWashRecord_id(washRecordId); packingTask.setClassifyBasket_id(tousseInstance.getClassifyBasket_id()); + packingTask.setClassifyBasketIds(tousseInstance.getClassifyBasketIds()); packingTask.setRecyclingBasketName(tousseInstance.getWashBasket()); + // 回收人 + packingTask.setRpRecyclingOperator(tousseInstance.getRecyclingOperator()); // 设置标识牌 packingTask.setIdCardBarcode(tousseInstance.getIdCardInstanceBarcode()); // 设置废弃器械包的条码