Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r38594 -r38609 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 38594) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 38609) @@ -2147,6 +2147,7 @@ itemVo.setTousseName(tousseName); } itemVo.setTousseID(tousseID); + itemVo.setWeight(td.getWeight()); itemVo.setInvoicePlanId(invoicePlanId); itemVo.setIdCardBarcode(task.getIdCardBarcode()); itemVo.setUseAmount(task.getUseAmount()); @@ -3038,7 +3039,7 @@ + "td.id as tousseDefinitionId,td.invoicePlanID,td.name,td.allowModifyPackageType,td.isDisableIDCard,td.tousseType,td.packagetype,td.sterilingMethod,td.isTraceable,td.packageSize," + "po.remarkOfApplyGoods,td.isPrint,td.isReview,td.isSterile,td.uuid_vedioNames,td.isUploadVideo,td.supplierName,urgentAmount,urgentLevel,hidePackingTask " + urgentlevelQuery - + ",td.includeImplant " + + ",td.includeImplant,td.weight " + " from PackingTask po " + leftJoinUrgentAdditionalInfoSql + " inner join TousseDefinition td on po.tousseDefinition_id = td.id " @@ -3229,6 +3230,7 @@ boolean queryclassifyBasketIds = SqlUtils.isExistColumn(rs, "classifyBasketIds"); boolean queryrecyclingUser = SqlUtils.isExistColumn(rs, "recyclingUser"); boolean queryurgentLevelId = SqlUtils.isExistColumn(rs, "urgentLevelId"); + boolean queryWeight = SqlUtils.isExistColumn(rs, "weight"); Map urgentLevelMap = new HashMap(); while(rs.next()){ PackingTask task = new PackingTask(); @@ -3328,6 +3330,9 @@ td.setNeedInspectMaterials(rs.getBoolean("needInspectMaterials")); td.setPrintBOMwhenPrintLabel(rs.getString("printBOMwhenPrintLabel")); td.setIncludeImplant(rs.getInt("includeImplant")); + if(queryWeight){ + td.setWeight(rs.getDouble("weight")); + } Object[] obj = new Object[2]; obj[0] = task; obj[1] = td; @@ -5690,6 +5695,10 @@ boolean splitPackingForeignTousse = JSONUtil.optBoolean(paramsObj, "splitPackingForeignTousse", true); Map fixedBarcodeMap = null; Map packageTypeAbbreviationMap = null; + if(!splitPackingForeignTousse){ + String newWeiht = JSONUtil.optString(paramsObj, "weight", null);//需要区分值0.0和null + updateWeight(packingTasks, newWeiht); + } for (PackingTask currentPackingTask : packingTasks) { IDCardInstance idCardInstance = null; String idCardDefinitionId = null; @@ -6269,6 +6278,42 @@ return json.toString(); } /** + * 修改外来器械包定义重量 + * @param td + * @param newWeiht 修改后的重量 + */ + public void updateWeight(List packingTasks, String newWeihtStr){ + if(packingTasks.size() == 1 && CssdUtils.getSystemSetConfigByNameBool("enableModifyWeightOfForeignTousseAfterApply", false)){ + TousseDefinition td = packingTasks.get(0).getTousseDefinition(); + if(td.isForeignTousse()){//外来器械且原重量大于0 + if(!StringUtils.isNumeric(newWeihtStr)){ + throw new SystemException("重量仅允许修改为正数"); + } + Double newWeiht = Double.valueOf(newWeihtStr); + if(newWeiht == null || newWeiht < 0.0d){ + throw new SystemException("重量仅允许修改为正数"); + } + if(objectDao.countBySql("select count(*) from " + + TousseDefinition.class.getSimpleName() + + " td where td.parentID =" + + td.getParentID() + + " and td.tousseType='" + + TousseDefinition.PACKAGE_TYPE_SPLIT + + "' ") > 0){ + throw new SystemException("该器械包拆小包后,不允许再次修改"); + } + td.setWeight(newWeiht); + objectDao.excuteSQL("update " + + TousseDefinition.class.getSimpleName() + + " set weight=" + + newWeiht + + " where id=" + + td.getId()); + } + } + + } + /** * 创建器械包集合码 * @param PackingPara 装配参数 * @param tousseNameAmountMap 装配任务中各个包的对应需要装配的数量 @@ -11659,7 +11704,7 @@ } List tis = null; if(StringTools.equals(td.getTousseType(),TousseDefinition.PACKAGE_TYPE_SPLIT)){ - tis = objectDao.getBySql_ForUpdate2(TousseInstance.class.getSimpleName(),"where operationTime is null and parentID=" + tis = objectDao.getBySql_ForUpdate2(TousseInstance.class.getSimpleName(),"where operationTime is null and po.tousseDefinition.parentID=" + td.getParentID() + " and recyclingRecordId="+packingTask.getSourceId() + " order by po.id asc");