Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r16311 -r16312 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 16311) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 16312) @@ -2742,7 +2742,31 @@ return jsonObject.toString(); } - // 装配外来器械包拆包 + /** + * 装配外来器械包拆包 + * @param operator + * @param operatorCode + * @param reviewer + * @param reviewerCode + * @param sterileUserName + * @param sterileUserCode + * @param sterilingType + * @param sterilizer + * @param frequency + * @param stock + * @param splitPackages + * @param td + * @param packingRecord + * @param washBasket + * @param foreignTousseApplication + * @param orgUnitCoding + * @param orgUnitName + * @param packingDate + * @param tousseWeight + * @param currentPackingTask + * @param idToWashRecordMap + * @param idToRecyclingRecordMap + */ private void packingSplitPackages(String operator, String operatorCode, String reviewer, String reviewerCode,String sterileUserName,String sterileUserCode, String sterilingType,String sterilizer, String frequency, String stock, JSONArray splitPackages,TousseDefinition td, PackingRecord packingRecord, @@ -4417,6 +4441,42 @@ } } + /** + * 创建器械包实例 + * @param operator + * @param operatorCode + * @param reviewer + * @param reviewerCode + * @param sterileUserName + * @param sterileUserCode + * @param packageType + * @param sterilingType + * @param stock + * @param washBasket + * @param sterilizerName + * @param sterileFrequency + * @param sterileStartTime + * @param validUntil + * @param warningUntil + * @param packingRecord + * @param td + * @param tousseType + * @param tousseName + * @param foreignTousseApplication + * @param packingDate + * @param toussePrice + * @param fluctuationPrice + * @param tousseAmount + * @param orgUnitCoding + * @param orgUnitName + * @param unTraceableTousse + * @param barcodeStr + * @param tousseWeight + * @param currentPackingTask + * @param idToWashRecordMap + * @param idToRecyclingRecordMap + * @return + */ private TousseInstance createTousseInstance(String operator, String operatorCode, String reviewer, String reviewerCode, String sterileUserName, String sterileUserCode, String packageType, @@ -4520,6 +4580,8 @@ tousseInstance.setWashEndTime(washRecord.getEndDateStr()); } } + + /* // 追溯清洗的多个篮筐 if (PackingTask.TASK_RECYCLINGRECORD.equals(currentPackingTask .getTaskType())) { @@ -4548,7 +4610,63 @@ idArray, ";")); } } + }*/ + + + //追溯清洗的多个篮筐 + if (PackingTask.TASK_RECYCLINGRECORD.equals(currentPackingTask + .getTaskType())) { + String basketBarcodes = currentPackingTask.getBasketBarcode(); + if (StringUtils.isNotBlank(basketBarcodes)) { + String sql = String + .format("select distinct b.id classifybasketId,b.personInCharge personInCharge,b.personInChargeCode personInChargeCode " + + "from classifybasket b ,classifieditem i " + + "where b.id = i.classifybasket_id and b.containerbarcode in ('%s') and i.recyclingrecordid = %s ", + basketBarcodes.replaceAll(";", "','"), + currentPackingTask.getSourceId()); + ResultSet rs = objectDao.executeSql(sql); + Set classifybasketIdSet = new HashSet(); //用Set能实现去重的效果(cjr) + try { + while (rs.next()) { + String classifyBasketId = StringUtils.defaultString(rs.getString("classifybasketId")); + String personInCharge = StringUtils.defaultString(rs.getString("personInCharge")); + String personInChargeCode = StringUtils.defaultString(rs.getString("personInChargeCode")); + + classifybasketIdSet.add(classifyBasketId); + + tousseInstance.setWashOperator(StringUtils.isNotBlank(personInCharge)?personInCharge:tousseInstance.getWashOperator()); + tousseInstance.setWashOperatorCode(StringUtils.isNotBlank(personInChargeCode)?personInChargeCode:tousseInstance.getWashOperator()); + } + } catch (SQLException e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + if (classifybasketIdSet.size() > 0) { //清洗篮筐id + String[] classifybasketIdArray = classifybasketIdSet.toArray(new String[classifybasketIdSet.size()]); + tousseInstance.setClassifyBasketIds(StringUtils.join(classifybasketIdArray, ";")); + } + + + String sql2 = "select operator from RecyclingRecord where id=" + currentPackingTask.getSourceId(); + + ResultSet rs2 = objectDao.executeSql(sql2); + try { + String recyclingOperator = ""; + while (rs2.next()) { + recyclingOperator = StringUtils.defaultString(rs2.getString("operator")); //回收清点人 + break; + } + tousseInstance.setRecyclingOperator(recyclingOperator); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs2); + } + } } + + } if(washRecordId != null){ Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r16304 -r16312 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 16304) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 16312) @@ -397,6 +397,11 @@ } } + /** + * 获取此清洗记录的,以前的清洗篮筐 + * @param washRecord + * @return + */ private Map getOldClassifyBasketMap( WashAndDisinfectRecord washRecord) { Map oldBasketMap = new HashMap(); @@ -806,11 +811,24 @@ return exist; } + /** + * 设置清洗的信息 + */ public void setWashInfo(TousseInstance tousseInstance,WashAndDisinfectRecord washRecord) { if (washRecord != null) { - tousseInstance.setWashOperator(washRecord.getOperator()); tousseInstance.setWashStartTime(washRecord.getStartDateStr()); - tousseInstance.setWashOperatorCode(washRecord.getOperatorCode()); + + String personInCharge = ""; + String personInChargeCode =""; + List classifyBasketList = washRecord.getClassifyBaskets(); + if (classifyBasketList.size() > 0) { + personInCharge = classifyBasketList.get(0).getPersonInCharge(); + personInChargeCode = classifyBasketList.get(0).getPersonInChargeCode(); + + } + + tousseInstance.setWashOperator(StringUtils.isNotBlank(personInCharge)?personInCharge:washRecord.getOperator()); + tousseInstance.setWashOperatorCode(StringUtils.isNotBlank(personInChargeCode)?personInChargeCode:washRecord.getOperatorCode()); } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseInstance.java =================================================================== diff -u -r16250 -r16312 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseInstance.java (.../TousseInstance.java) (revision 16250) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseInstance.java (.../TousseInstance.java) (revision 16312) @@ -262,7 +262,13 @@ */ private String sterilizerPosition; + /** + * 回收清点人 + */ + private String recyclingOperator; + + public static final String ROUTINE_YES = "是"; public static final String ROUTINE_NO = "否"; private String isRoutine; //是否常规发货,默认是常规发货(这里的不常规指的是:正在做"生物监测"时就把这个器械包发货了) @@ -1099,6 +1105,16 @@ this.isRoutine = isRoutine; } + public String getRecyclingOperator() { + return recyclingOperator; + } + + public void setRecyclingOperator(String recyclingOperator) { + this.recyclingOperator = recyclingOperator; + } + + + public static final Comparator TousseInstanceBarcodeComparator = new Comparator() { @Override public int compare(TousseInstance o1, TousseInstance o2) {