Index: ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/service/IDCardDefinitionManager.java =================================================================== diff -u -r19287 -r19781 --- ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/service/IDCardDefinitionManager.java (.../IDCardDefinitionManager.java) (revision 19287) +++ ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/service/IDCardDefinitionManager.java (.../IDCardDefinitionManager.java) (revision 19781) @@ -5,6 +5,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.idcarddefinition.IDCardDefinition; import com.forgon.tools.hibernate.BasePoManager; @@ -49,6 +50,7 @@ public void updateIDCardDefinitions_TRANS_REQUIRED(String idCardDefinitionStr); public void saveTraceableMaterials_TRANS_REQUIRED(String idCardDefinitionId,String originalTraceableMaterialsStr,String traceableMaterialsStr); + public void newAndSaveContainer(IDCardDefinition idCardDefinition); + public Container newContainer(IDCardDefinition idCardDefinition); - } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/idcarddefinition/IDCardDefinition.java =================================================================== diff -u -r18964 -r19781 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/idcarddefinition/IDCardDefinition.java (.../IDCardDefinition.java) (revision 18964) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/idcarddefinition/IDCardDefinition.java (.../IDCardDefinition.java) (revision 19781) @@ -72,6 +72,14 @@ * 编号 */ private String idNumber; + /** + * 篮筐id + */ + private Long containerId; + /** + * 篮筐条码 + */ + private String containerBarcode; @Override @Id @GeneratedValue(strategy = GenerationType.AUTO) @@ -147,6 +155,22 @@ this.idNumber = idNumber; } + public Long getContainerId() { + return containerId; + } + + public String getContainerBarcode() { + return containerBarcode; + } + + public void setContainerId(Long containerId) { + this.containerId = containerId; + } + + public void setContainerBarcode(String containerBarcode) { + this.containerBarcode = containerBarcode; + } + public void safelySetLastTousseInstanceId(Long lastTousseInstanceId) { if(this.lastTousseInstanceId == null){ this.lastTousseInstanceId = lastTousseInstanceId; Index: forgon-core/src/main/java/com/forgon/Constants.java =================================================================== diff -u -r19662 -r19781 --- forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 19662) +++ forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 19781) @@ -21,7 +21,7 @@ "4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.3.0","4.3.1","4.3.2","4.3.3","4.3.4","4.3.5","4.3.6","4.3.7","4.3.8","4.3.9", "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.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"};// 版本列表 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/container/action/ContainerAction.java =================================================================== diff -u -r19774 -r19781 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/action/ContainerAction.java (.../ContainerAction.java) (revision 19774) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/action/ContainerAction.java (.../ContainerAction.java) (revision 19781) @@ -127,7 +127,7 @@ } } sql = sql.substring(0, sql.length() - 4); - sql = "where 1=1 and (" + sql+ ")" + " and po.purpose='" + purpose + "'" + (departCode != null ? " and po.departCode='" + departCode + "'" : ""); + sql = "where po.idCardDefinitionId is null and (" + sql+ ")" + " and po.purpose='" + purpose + "'" + (departCode != null ? " and po.departCode='" + departCode + "'" : ""); containers = containerManager.getContainerListBySql(sql); } else if (basketDarcode != null) { //扫条码灭菌篮筐执行的函数 containers = containerManager.getContainerListByProperty("barcode", basketDarcode); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/container/Container.java =================================================================== diff -u -r19774 -r19781 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/container/Container.java (.../Container.java) (revision 19774) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/container/Container.java (.../Container.java) (revision 19781) @@ -66,6 +66,8 @@ private String washClassifyType; + private Long idCardDefinitionId; + public static Map ColumnNameAndPoPropertyNameMap = new LinkedHashMap(2); static { @@ -221,5 +223,13 @@ public void setWashClassifyType(String washClassifyType) { this.washClassifyType = washClassifyType; } + + public Long getIdCardDefinitionId() { + return idCardDefinitionId; + } + + public void setIdCardDefinitionId(Long idCardDefinitionId) { + this.idCardDefinitionId = idCardDefinitionId; + } } Index: ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/service/IDCardDefinitionManagerImpl.java =================================================================== diff -u -r19577 -r19781 --- ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/service/IDCardDefinitionManagerImpl.java (.../IDCardDefinitionManagerImpl.java) (revision 19577) +++ ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/service/IDCardDefinitionManagerImpl.java (.../IDCardDefinitionManagerImpl.java) (revision 19781) @@ -22,10 +22,13 @@ import com.forgon.directory.model.BarcodeDevice; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; +import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.basedatamanager.toussedefinition.service.TousseInstanceUtils; import com.forgon.disinfectsystem.common.Constants; +import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.TraceableMaterial; +import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.idcarddefinition.IDCardDefinition; @@ -34,10 +37,10 @@ import com.forgon.disinfectsystem.entity.packing.IDCardInfoForPackingTask; import com.forgon.disinfectsystem.entity.packing.PackingTask; import com.forgon.disinfectsystem.idcardinstance.service.IDCardInstanceManager; -import com.forgon.disinfectsystem.idcardinstance.util.IDCardInstanceUtils; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.disinfectsystem.traceablematerial.util.TraceableMaterialUtils; +import com.forgon.serialnumber.model.SerialNum; import com.forgon.serialnumber.service.SerialNumManager; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.BasePoManagerImpl; @@ -65,6 +68,8 @@ private IDCardInstanceManager idCardInstanceManager; + private SupplyRoomConfigManager supplyRoomConfigManager; + public void setMaterialDefinitionManager( MaterialDefinitionManager materialDefinitionManager) { this.materialDefinitionManager = materialDefinitionManager; @@ -84,6 +89,11 @@ this.idCardInstanceManager = idCardInstanceManager; } + public void setSupplyRoomConfigManager( + SupplyRoomConfigManager supplyRoomConfigManager) { + this.supplyRoomConfigManager = supplyRoomConfigManager; + } + private void save_internal(IDCardDefinition idCardDefinition) { idCardDefinition.validateAssociatedInfo(); objectDao.save(idCardDefinition); @@ -426,6 +436,8 @@ idCardDefinition.setIdNumber(idNumber); } objectDao.save(idCardDefinition); + // 创建篮筐 + newAndSaveContainer(idCardDefinition); TousseDefinition tousseDefinition = tousseDefinitionManager.get(tousseDefinitionId); IDCardInstance idCardInstance = idCardInstanceManager.newIdCardInstance(idCardDefinition, tousseDefinition, IDCardInstance.STATUS_USING,false, true); @@ -681,7 +693,7 @@ .getIDCardInstances(objectDao); List idCardDefinitionToIDCardInstances = idCardDefinitionTo .getIDCardInstances(objectDao); - + // 如果当前是使用中,那么需要保证被转换的标识牌中的实例有一个是使用中,打印日期最大的 if (StringUtils.equals(fromIDCardInstance.getStatus(), IDCardInstance.STATUS_USING)) { @@ -918,5 +930,44 @@ curIDCardDefinition.setDescription(JSONUtil.optString(idCardDefinition, "description", "")); objectDao.update(curIDCardDefinition); } + @Override + public void newAndSaveContainer(IDCardDefinition idCardDefinition) { + if(idCardDefinition.getContainerId() != null){ + return; + } + Container container = newContainer(idCardDefinition); + objectDao.save(container); + idCardDefinition.setContainerBarcode(container.getBarcode()); + idCardDefinition.setContainerId(container.getId()); + objectDao.saveOrUpdate(idCardDefinition); + } + @Override + public Container newContainer(IDCardDefinition idCardDefinition) { + Container container = new Container(); + container.setType(BarcodeDevice.BARCODE_TYPE_CONTAINER); + // 设置条码 + String barcode = container.getBarcode(); + if (StringUtils.isBlank(container.getBarcode())) { + barcode = serialNumManager + .getSerialNumberStr(SerialNum.TYPE_BARCODE); + container.setBarcode(barcode); + } + container.setIdCardDefinitionId(idCardDefinition.getId()); + container.setPurpose(Container.CONTAINER_PURPOSE_CLEAN_BASKET); + container.setContainerType(Container.CONTAINERTYPE_BASKET); + TousseDefinition tousseDefinition = idCardDefinition.getTousseDefinition(objectDao); + String tousseName = ""; + if(tousseDefinition != null){ + tousseName = tousseDefinition.getName(); + } + container.setContainerName(String.format("%s(标识牌%s)", tousseName,idCardDefinition.getId())); + SupplyRoomConfig supplyRoom = supplyRoomConfigManager + .getFirstSupplyRoomConfig(); + if (supplyRoom != null) { + container.setDepartCode(supplyRoom.getOrgUnitCoding()); + container.setDepartName(supplyRoom.getOrgUnitName()); + } + return container; + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java =================================================================== diff -u -r17108 -r19781 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 17108) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 19781) @@ -66,7 +66,8 @@ @SuppressWarnings("unchecked") public List getAllContainer() { - return objectDao.findAllObjects(Container.class.getSimpleName()); + String hql = " where po.idCardDefinitionId is null "; + return objectDao.findBySql(Container.class.getSimpleName(), hql); } /** @@ -99,12 +100,13 @@ @SuppressWarnings("unchecked") @Override public List getContainerByPurpose(String purpose) { - return objectDao.findByProperty(Container.class.getSimpleName(), "purpose", purpose); + String hql = " where po.idCardDefinitionId is null and po.purpose='" + purpose + "' "; + return objectDao.findBySql(Container.class.getSimpleName(), hql); } @SuppressWarnings("unchecked") @Override public List getContainerList(String purpose,String status){ - String hql = " where po.purpose='" + purpose + "' and po.status='" + status + "'"; + String hql = " where po.idCardDefinitionId is null and po.purpose='" + purpose + "' and po.status='" + status + "'"; return objectDao.findBySql(Container.class.getSimpleName(), hql); } @@ -118,7 +120,7 @@ @Override public List getContainerListByPurposeAndDepartCode(String purpose,String departCode) { - String sql = "where 1=1 "; + String sql = "where po.idCardDefinitionId is null "; if(StringUtils.isNotBlank(departCode)){ sql += " and po.departCode = '" + departCode + "'"; } Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java =================================================================== diff -u -r19643 -r19781 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java (.../MaintainManagerImpl.java) (revision 19643) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java (.../MaintainManagerImpl.java) (revision 19781) @@ -59,6 +59,7 @@ import com.forgon.disinfectsystem.entity.customform.forminstance.FormInstanceItem; import com.forgon.disinfectsystem.entity.customform.forminstance.FormInstanceOptionValue; import com.forgon.disinfectsystem.entity.foreigntousseapplication.ForeignTousseApplication; +import com.forgon.disinfectsystem.entity.idcarddefinition.IDCardDefinition; import com.forgon.disinfectsystem.entity.invoicemanager.DiposableGoodsItem; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoiceItem; @@ -75,6 +76,7 @@ import com.forgon.disinfectsystem.entity.useRecord.UseRecord; import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord; import com.forgon.disinfectsystem.foreigntousseapplication.service.ForeignTousseApplicationManager; +import com.forgon.disinfectsystem.idcarddefinition.service.IDCardDefinitionManager; import com.forgon.disinfectsystem.invoicemanager.service.InvoiceManager; import com.forgon.disinfectsystem.recyclingapplication.service.InvoicePlanManager; import com.forgon.disinfectsystem.recyclingrecord.service.RecyclingRecordManager; @@ -128,6 +130,13 @@ private ForeignTousseApplicationManager foreignTousseApplicationManager; + private IDCardDefinitionManager idCardDefinitionManager; + + public void setIdCardDefinitionManager( + IDCardDefinitionManager idCardDefinitionManager) { + this.idCardDefinitionManager = idCardDefinitionManager; + } + public void setForeignTousseApplicationManager( ForeignTousseApplicationManager foreignTousseApplicationManager) { this.foreignTousseApplicationManager = foreignTousseApplicationManager; @@ -1032,6 +1041,9 @@ case "4.6.8_4.6.9": UpdateData_4_6_8_4_6_9(updateDataContext); break; + case "4.8.9_4.9.0": + UpdateData_4_8_9_4_9_0(updateDataContext); + break; } return false; } @@ -1737,6 +1749,25 @@ } dataUpdater.logInfo(msg); } + // 更新标识牌和篮筐 + private void UpdateData_4_8_9_4_9_0(UpdateDataContext updateDataContext) { + DataUpdater dataUpdater = updateDataContext.getDataUpdater(); + String msg = null; + msg = String + .format("已执行方法(%s.%s)!", MaintainManagerImpl.class.getName(), + "UpdateData_4_8_9_4_9_0()"); + try { + List list = idCardDefinitionManager.getAll(); + if(list != null){ + for (IDCardDefinition idCardDefinition : list) { + idCardDefinitionManager.newAndSaveContainer(idCardDefinition); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + dataUpdater.logInfo(msg); + } @Override public void updateForeignTousseInfo() { //外来器械材料定义