Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinitionMaterial.java =================================================================== diff -u -r13739 -r13769 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinitionMaterial.java (.../TousseDefinitionMaterial.java) (revision 13739) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinitionMaterial.java (.../TousseDefinitionMaterial.java) (revision 13769) @@ -10,5 +10,8 @@ public interface TousseDefinitionMaterial extends Comparable { public String getType(); + public Integer getSequence(); + + public void setSequence(Integer sequence); } Index: forgon-core/src/main/java/com/forgon/Constants.java =================================================================== diff -u -r13757 -r13769 --- forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 13757) +++ forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 13769) @@ -17,7 +17,7 @@ public final static String[] SOFTWARE_VERSION_ARRAY = new String[] { "3.3.0","3.3.8", "3.3.9", "3.3.10","3.3.12","3.3.13","3.8.0","3.9.0","3.9.1","3.9.2","4.0.2","4.0.3","4.0.4", - "4.0.5","4.0.6","4.0.44","4.0.45","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.1.6","4.1.7","4.1.8","4.1.9"};// 版本列表 + "4.0.5","4.0.6","4.0.44","4.0.45","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.1.6","4.1.7","4.1.8","4.1.9","4.2.0"};// 版本列表 public final static List SOFTWARE_VERSION_LIST = Arrays .asList(SOFTWARE_VERSION_ARRAY); public final static String SOFTWARE_VERSION = SOFTWARE_VERSION_ARRAY[SOFTWARE_VERSION_ARRAY.length - 1];// 软件最新版本 Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java =================================================================== diff -u -r13424 -r13769 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java (.../MaintainManagerImpl.java) (revision 13424) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java (.../MaintainManagerImpl.java) (revision 13769) @@ -10,9 +10,11 @@ import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; @@ -33,16 +35,18 @@ import com.forgon.dataupdater.service.DataUpdater; import com.forgon.dataupdater.service.UpdateDataBetween2VersionForSpecialTask; import com.forgon.disinfectsystem.basedatamanager.supplier.service.SupplierManager; -import com.forgon.disinfectsystem.common.CssdUtils; +import com.forgon.disinfectsystem.basedatamanager.toussedefinition.service.TousseDefinitionUtils; +import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; -import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsIdentification; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.basedatamanager.datasynchronization.HisMaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.datasynchronization.HisMaterialType; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinitionMaterial; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.becleanitem.ClassifiedItem; import com.forgon.disinfectsystem.entity.invoicemanager.DiposableGoodsItem; @@ -61,7 +65,6 @@ import com.forgon.disinfectsystem.invoicemanager.service.InvoiceManager; import com.forgon.disinfectsystem.recyclingapplication.service.InvoicePlanManager; import com.forgon.disinfectsystem.recyclingrecord.service.RecyclingRecordManager; -import com.forgon.disinfectsystem.returngoodsrecord.service.ReturnGoodsItemVO; import com.forgon.disinfectsystem.sterilizationmanager.foreignproxydisinfection.service.ForeignProxyDisinfectionManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; @@ -972,6 +975,9 @@ case "4.0.5_4.0.6": UpdateData_4_0_5_4_0_6(updateDataContext); break; + case "4.1.9_4.2.0": + UpdateData_4_1_9_4_2_0(updateDataContext); + break; } return false; } @@ -1584,4 +1590,22 @@ } dataUpdater.logInfo(msg); } + private void UpdateData_4_1_9_4_2_0(UpdateDataContext updateDataContext) { + DataUpdater dataUpdater = updateDataContext.getDataUpdater(); + String msg = null; + msg = String + .format("已执行方法(%s.%s)!", MaintainManagerImpl.class.getName(), + "UpdateData_4_1_9_4_2_0()"); + + // 器械包实例的下划线处理,将包实例的下划线中的id取出来,放到单独的列。并且将包名更新为不带下划线 + String sql = String.format(" where po.forDisplay=true "); + List tousseDefinitions = objectDao.findBySql(TousseDefinition.class.getSimpleName(), sql); + if(tousseDefinitions != null){ + for (TousseDefinition tousseDefinition : tousseDefinitions) { + TousseDefinitionUtils.resetTousseDefinitionMaterialSequenceIfHaveNotSet(tousseDefinition); + objectDao.update(tousseDefinition); + } + } + dataUpdater.logInfo(msg); + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/toussedefinition/service/TousseDefinitionUtils.java =================================================================== diff -u -r12938 -r13769 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/toussedefinition/service/TousseDefinitionUtils.java (.../TousseDefinitionUtils.java) (revision 12938) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/toussedefinition/service/TousseDefinitionUtils.java (.../TousseDefinitionUtils.java) (revision 13769) @@ -4,7 +4,13 @@ */ package com.forgon.disinfectsystem.basedatamanager.toussedefinition.service; +import java.util.LinkedList; +import java.util.List; + +import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinitionMaterial; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; @@ -64,4 +70,53 @@ return (TousseDefinition) objectDao.getBySql( TousseDefinition.class.getSimpleName(), sql); } + + public static void resetTousseDefinitionMaterialSequence(TousseDefinition tousseDefinition){ + List materialInstances = tousseDefinition.getMaterialInstances(); + List diposableGoodsItems = tousseDefinition.getDiposableGoodsItems(); + List tousseDefinitionMaterials = new LinkedList(); + if(materialInstances != null){ + tousseDefinitionMaterials.addAll(materialInstances); + } + if(diposableGoodsItems != null){ + tousseDefinitionMaterials.addAll(diposableGoodsItems); + } + if(tousseDefinitionMaterials.isEmpty()){ + return; + } + resetTousseDefinitionMaterialSequence(tousseDefinitionMaterials); + } + public static void resetTousseDefinitionMaterialSequenceIfHaveNotSet(TousseDefinition tousseDefinition){ + List materialInstances = tousseDefinition.getMaterialInstances(); + List diposableGoodsItems = tousseDefinition.getDiposableGoodsItems(); + List tousseDefinitionMaterials = new LinkedList(); + + if(materialInstances != null){ + tousseDefinitionMaterials.addAll(materialInstances); + } + if(diposableGoodsItems != null){ + tousseDefinitionMaterials.addAll(diposableGoodsItems); + } + if(tousseDefinitionMaterials.isEmpty()){ + return; + } + boolean sequenceHaveBeenSet = false; + Integer sequence = tousseDefinitionMaterials.get(0).getSequence(); + if(sequence != null && sequence > 0){ + sequenceHaveBeenSet = true; + } + if(sequenceHaveBeenSet){// 序号已经设置过了,不重新设置 + return; + } + resetTousseDefinitionMaterialSequence(tousseDefinitionMaterials); + } + public static void resetTousseDefinitionMaterialSequence(List tousseDefinitionMaterials){ + if(tousseDefinitionMaterials == null){ + return; + } + for(int i=0;i tousseDefinitionMaterials = new LinkedList(); // tousseDefinitionMaterials.clear(); + + if(materialInstances != null){ + tousseDefinitionMaterials.addAll(materialInstances); + } if(diposableGoodsItems != null){ tousseDefinitionMaterials.addAll(diposableGoodsItems); } - if(materialInstances != null){ - tousseDefinitionMaterials.addAll(materialInstances); + boolean sequenceHaveBeenSet = false; + if(!tousseDefinitionMaterials.isEmpty()){ + Integer sequence = tousseDefinitionMaterials.get(0).getSequence(); + if(sequence != null && sequence > 0){ + sequenceHaveBeenSet = true; + } } - Collections.sort(tousseDefinitionMaterials); + if(sequenceHaveBeenSet){// 序号已经设置过了,才进行排序,兼容旧的数据 + Collections.sort(tousseDefinitionMaterials); + } JsonConfig config = new JsonConfig(); config.setExcludes(new String[] { "fieldHandler", "handler",