Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java =================================================================== diff -u -r22465 -r22730 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 22465) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 22730) @@ -159,6 +159,9 @@ */ @Override public List createVirtualContainer(int amount , SupplyRoomConfig supplyRoom){ + if(amount!=9999){ + setVirtualContainerName(); + } List list = null; if(amount > 0){ list = new ArrayList(); @@ -196,6 +199,41 @@ } /** + * 对于那些旧的篮筐名,需要在前面补上零 比如 001 要变成 0001 + */ + private void setVirtualContainerName (){ + String s = ""; + String s2 = ""; + for (int i = 1; i < 1000 ; i++) { + if(i<10){ + s = "000"; + s2 = "00"; + }else if(i<100){ + s = "00"; + s2 = "0"; + }else if(i<1000){ + s = "0"; + s2 = ""; + } + String finals1 = s+i; + String finals2 = s2+i; + + String updateSql = " update "+Container.class.getSimpleName()+" set containerName ='"+finals1+"' " + + " where containerName = '"+finals2+"' and purpose = '"+Container.CONTAINER_PURPOSE_VIRTUAL+"'"; + + + String updateSql2 = "update "+BarcodeDevice.class.getSimpleName()+" set barcode = '"+finals1+"' " + + " where barcode = '"+finals2+"' and type = '"+BarcodeDevice.BARCODE_TYPE_CONTAINER+"'"; + logger.debug("===="+updateSql); + objectDao.executeUpdate(updateSql); + + //修改了虚拟篮筐的名字,对应的BarcodeDevice也要同步修改 + objectDao.executeUpdate(updateSql2); + } + + } + + /** * 调用虚拟篮筐,最新的逻辑处理 * 调出当前使用的最大虚拟篮筐(初次使用时为空)之后的空闲篮筐 * 1.定位到当前的最大虚拟篮筐(可从数据库查询),查询其后是否有足够数量的空闲虚拟篮筐 @@ -470,16 +508,19 @@ int nextSeqNum = sequeneNum + 1; if(nextSeqNum < 10){ //一位数 - result = "00" + nextSeqNum; + result = "000" + nextSeqNum; }else if(nextSeqNum < 100){ //两位数 - result = "0" + nextSeqNum; + result = "00" + nextSeqNum; + }else if(nextSeqNum < 999){ + //三位数 + result = "0" + nextSeqNum; }else{ - //三位数或大于三位数 + //四位数以上 result = "" + nextSeqNum; } }catch(Exception e){ - + e.printStackTrace(); } return result; } Index: forgon-core/src/main/java/com/forgon/Constants.java =================================================================== diff -u -r22717 -r22730 --- forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 22717) +++ forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 22730) @@ -22,7 +22,7 @@ "4.4.0","4.4.1","4.4.2","4.4.3","4.4.4","4.4.5","4.4.6","4.4.7","4.4.8","4.4.9","4.5.0","4.5.1","4.5.2","4.5.3","4.5.4","4.5.5","4.5.6","4.5.7","4.5.8", "4.5.9","4.6.0","4.6.1","4.6.2","4.6.3","4.6.4","4.6.5","4.6.6","4.6.7","4.6.8","4.6.9","4.7.0","4.7.1","4.7.2","4.7.3","4.7.4","4.7.5","4.7.6","4.7.7", "4.7.8","4.7.9","4.8.0","4.8.1","4.8.2","4.8.3","4.8.4","4.8.5","4.8.6","4.8.7","4.8.8","4.8.9","4.9.0","4.9.1","4.9.2","4.9.3","4.9.4","4.9.5","4.9.6", - "4.9.7","4.9.8","4.9.9","4.9.10","4.9.11","4.9.12","4.9.13","4.9.14"};// 版本列表 + "4.9.7","4.9.8","4.9.9","4.9.10","4.9.11","4.9.12","4.9.13","4.9.14","4.9.15"};// 版本列表 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-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java =================================================================== diff -u -r22638 -r22730 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 22638) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 22730) @@ -31,6 +31,7 @@ import com.forgon.directory.service.OrgUnitManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; +import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.basedatamanager.supplier.RegistrationCertification; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; @@ -889,6 +890,16 @@ String sql = String.format("update %s set isReview='%s' where tousseType in('%s','%s')", TousseDefinition.class.getSimpleName(),foreignTousseNeedReview,TousseDefinition.PACKAGE_TYPE_FOREIGN,TousseDefinition.PACKAGE_TYPE_SPLIT); objectDao.executeUpdate(sql); } + + //给虚拟篮筐科室赋值 + String setContainerSql = "update "+Container.class.getSimpleName()+" set departCode = (select orgUnitCoding from "+SupplyRoomConfig.class.getSimpleName()+" src where src.supplyRoomType=1) " + + "where purpose = '"+Container.CONTAINER_PURPOSE_VIRTUAL+"' and (departCode ='' or departCode is null );"; + String setContainerSql2 = "update "+Container.class.getSimpleName()+" set departName = (select orgUnitName from "+SupplyRoomConfig.class.getSimpleName()+" src where src.supplyRoomType=1) " + + "where purpose = '"+Container.CONTAINER_PURPOSE_VIRTUAL+"' and (departName ='' or departName is null );"; + objectDao.executeUpdate(setContainerSql); + objectDao.executeUpdate(setContainerSql2); + + supplyRoomConfigManager.save(supplyRoomConfig); StrutsResponseUtils.output(true, "保存成功!"); Index: ssts-web/src/main/webapp/dataUpdater/sqls/4.9.14_4.9.15.sql =================================================================== diff -u --- ssts-web/src/main/webapp/dataUpdater/sqls/4.9.14_4.9.15.sql (revision 0) +++ ssts-web/src/main/webapp/dataUpdater/sqls/4.9.14_4.9.15.sql (revision 22730) @@ -0,0 +1,6 @@ +update Container set departCode = (select orgUnitCoding from SupplyRoomConfig src where src.supplyRoomType=1) +where purpose = '虚拟筐' and (departCode ='' or departCode is null ); + + +update Container set departName = (select orgUnitName from SupplyRoomConfig src where src.supplyRoomType=1) +where purpose = '虚拟筐' and (departName = '' or departName is null); \ No newline at end of file Index: ssts-web/src/main/java/com/forgon/disinfectsystem/initdata/service/InitializeDataManagerImpl.java =================================================================== diff -u -r22281 -r22730 --- ssts-web/src/main/java/com/forgon/disinfectsystem/initdata/service/InitializeDataManagerImpl.java (.../InitializeDataManagerImpl.java) (revision 22281) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/initdata/service/InitializeDataManagerImpl.java (.../InitializeDataManagerImpl.java) (revision 22730) @@ -709,12 +709,14 @@ private void initVirtualContainerData(){ List list = objectDao.findBySql("Container", "where purpose='" + Container.CONTAINER_PURPOSE_VIRTUAL + "'"); //判断容器表是否已创建虚拟篮筐 - if(CollectionUtils.isEmpty(list)){ - containerManager.createVirtualContainer(999 , supplyRoomConfigManager.getFirstSupplyRoomConfig()); + if(CollectionUtils.isEmpty(list) || list.size() < 9999){ + containerManager.createVirtualContainer(9999 - list.size() , supplyRoomConfigManager.getFirstSupplyRoomConfig()); }else{ for(Object obj : list){ Container container = (Container)obj; + //如果是当前使用到的虚拟篮筐 if(Container.CONTAINER_CURRENT_VIRTUAL_YES.equals(container.getIsCurrent())){ + //设置当前已使用到的最大虚拟篮筐编号 Container.CONTAINER_CURRENT_VIRTUAL = container.getContainerName(); break; }