Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/operationRoom/OperationRoom.java =================================================================== diff -u -r23492 -r34241 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/operationRoom/OperationRoom.java (.../OperationRoom.java) (revision 23492) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/operationRoom/OperationRoom.java (.../OperationRoom.java) (revision 34241) @@ -1,18 +1,24 @@ package com.forgon.disinfectsystem.entity.basedatamanager.operationRoom; import javax.persistence.Entity; + +import org.hibernate.annotations.Cascade; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; + import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Index; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; import javax.persistence.Table; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import com.fasterxml.jackson.annotation.JsonFilter; +import com.forgon.directory.model.BarcodeDevice; /** * 手术间分组po类 @@ -69,6 +75,11 @@ * 对应手术预约单是否需要发货 */ private String isInvoice; + + /** + * 手术间条码(ZJYY-108扫“手术间”、“科室”、“标识牌”条码筛选待回收的申请单) + */ + private BarcodeDevice barcodeDevice; @Id @GeneratedValue(strategy=GenerationType.AUTO) @@ -143,5 +154,16 @@ public void setParentOperationRoomId(Long parentOperationRoomId) { this.parentOperationRoomId = parentOperationRoomId; } + + @ManyToOne + @Cascade(value = { org.hibernate.annotations.CascadeType.ALL }) + @JoinColumn(name = "barcodeDevice_id") + public BarcodeDevice getBarcodeDevice() { + return barcodeDevice; + } + + public void setBarcodeDevice(BarcodeDevice barcodeDevice) { + this.barcodeDevice = barcodeDevice; + } } Index: forgon-core/src/main/java/com/forgon/directory/model/BarcodeDevice.java =================================================================== diff -u -r31736 -r34241 --- forgon-core/src/main/java/com/forgon/directory/model/BarcodeDevice.java (.../BarcodeDevice.java) (revision 31736) +++ forgon-core/src/main/java/com/forgon/directory/model/BarcodeDevice.java (.../BarcodeDevice.java) (revision 34241) @@ -43,6 +43,7 @@ public static final String BARCODE_TYPE_PACKAGE = "器械包"; public static final String BARCODE_TYPE_USER = "用户"; public static final String BARCODE_TYPE_ORGUNIT = "科室"; + public static final String BARCODE_TYPE_OPERATIONROOM = "手术间"; public static final String BARCODE_TYPE_STERILIZER = "灭菌炉"; public static final String BARCODE_TYPE_RINSER = "清洗机"; public static final String BARCODE_TYPE_INVOICE = "发货单"; Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/operationroom/service/OperationRoomManagerImpl.java =================================================================== diff -u -r27231 -r34241 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/operationroom/service/OperationRoomManagerImpl.java (.../OperationRoomManagerImpl.java) (revision 27231) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/operationroom/service/OperationRoomManagerImpl.java (.../OperationRoomManagerImpl.java) (revision 34241) @@ -11,17 +11,28 @@ import net.sf.json.JSONArray; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; import com.forgon.Constants; import com.forgon.directory.acegi.tools.AcegiHelper; +import com.forgon.directory.model.BarcodeDevice; import com.forgon.disinfectsystem.entity.basedatamanager.operationRoom.OperationRoom; +import com.forgon.serialnumber.model.SerialNum; +import com.forgon.serialnumber.service.SerialNumManager; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.BasePoManagerImpl; import com.forgon.tools.string.StringTools; import com.forgon.tools.util.SqlUtils; import com.forgon.treenode.ext.model.OperationRoomTreeNode; public class OperationRoomManagerImpl extends BasePoManagerImpl implements OperationRoomManager { + + private SerialNumManager serialNumManager; + + public void setSerialNumManager(SerialNumManager serialNumManager) { + this.serialNumManager = serialNumManager; + } + @Override public String getJsonChildrenNode(Long id) { List children = findSubordinateOperationRoomById(id); @@ -118,6 +129,15 @@ operationRoom.setParentOperationRoomName(parent.getOperationRoomName()); operationRoom.setParentOperationRoomCoding(parent.getOperationRoomCoding()); + //系统手术间管理中的手术间,增加生成并打印手术间条码“功能”(ZJYY-108) + if(operationRoom.getBarcodeDevice() == null || StringUtils.isBlank(operationRoom.getBarcodeDevice().getBarcode())){ + BarcodeDevice barcode = new BarcodeDevice(); + String barcodeStr = serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE); + barcode.setBarcode(barcodeStr); + barcode.setType(BarcodeDevice.BARCODE_TYPE_OPERATIONROOM); + operationRoom.setBarcodeDevice(barcode); + } + if (id != null) { if (Constants.STR_NO.equals(isInvoice)) { //把是否发货属性改成“否”,那么他的所有子手术间也要设置成“否” LinkedList idList = new LinkedList(); Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java =================================================================== diff -u -r33430 -r34241 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java (.../MaintainManagerImpl.java) (revision 33430) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java (.../MaintainManagerImpl.java) (revision 34241) @@ -79,6 +79,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.imagefilemanager.ImageFile; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.operationRoom.OperationRoom; import com.forgon.disinfectsystem.entity.basedatamanager.position.TousseOperation; import com.forgon.disinfectsystem.entity.basedatamanager.reportoption.GoodsOption; import com.forgon.disinfectsystem.entity.basedatamanager.reportoption.WorkScoreConfig; @@ -204,6 +205,8 @@ import com.forgon.disinfectsystem.washanddisinfectmanager.washanddisinfectrecord.service.WashAndDisinfectRecordManager; import com.forgon.security.model.Operation; import com.forgon.security.model.Role; +import com.forgon.serialnumber.model.SerialNum; +import com.forgon.serialnumber.service.SerialNumManager; import com.forgon.systemsetting.model.HttpOption; import com.forgon.tools.GB2Alpha; import com.forgon.tools.GB2WB; @@ -257,6 +260,12 @@ private BarcodeManager barcodeManager; + private SerialNumManager serialNumManager; + + public void setSerialNumManager(SerialNumManager serialNumManager) { + this.serialNumManager = serialNumManager; + } + public void setIdCardDefinitionManager( IDCardDefinitionManager idCardDefinitionManager) { this.idCardDefinitionManager = idCardDefinitionManager; @@ -1557,11 +1566,45 @@ case "4.9.79_4.9.80": UpdateData_4_9_79_4_9_80(updateDataContext); break; + case "4.9.94_4.9.95": + UpdateData_4_9_94_4_9_95(updateDataContext); + break; } return false; } /** + * 通过升级方法,将系统中已经存在的手术间定义的数据,产生一个唯一的条码,每条手术间记录产生一个条码。ZJYY-108 + * @param updateDataContext + */ + private void UpdateData_4_9_94_4_9_95(UpdateDataContext updateDataContext) { + String hql = String.format("select po from %s po where po.barcodeDevice.id is null and po.id <> 0 ", OperationRoom.class.getSimpleName()); + @SuppressWarnings("unchecked") + List operationRoomList = objectDao.findByHql(hql); + if(CollectionUtils.isNotEmpty(operationRoomList)){ + for (OperationRoom operationRoom : operationRoomList) { + //系统手术间管理中的手术间,增加生成并打印手术间条码“功能”(ZJYY-108) + if(operationRoom.getBarcodeDevice() == null || StringUtils.isBlank(operationRoom.getBarcodeDevice().getBarcode())){ + BarcodeDevice barcode = new BarcodeDevice(); + String barcodeStr = serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE); + barcode.setBarcode(barcodeStr); + barcode.setType(BarcodeDevice.BARCODE_TYPE_OPERATIONROOM); + operationRoom.setBarcodeDevice(barcode); + objectDao.saveOrUpdate(operationRoom); + } + } + } + + DataUpdater dataUpdater = updateDataContext.getDataUpdater(); + String msg = null; + msg = String.format("已执行方法(%s.%s)!", + MaintainManagerImpl.class.getName(), + "UpdateData_4_9_94_4_9_95()"); + dataUpdater.logInfo(msg); + } + + + /** * 配置项enableUrgentFunction的值为true的项目,要给系统中的所有角色,都赋予【显示加急级别和加急数量】的权限。 * @param updateDataContext */ Index: forgon-tools/src/main/java/com/forgon/Constants.java =================================================================== diff -u -r34210 -r34241 --- forgon-tools/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 34210) +++ forgon-tools/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 34241) @@ -27,7 +27,7 @@ "4.9.25","4.9.26","4.9.27","4.9.28","4.9.29","4.9.30","4.9.31","4.9.32","4.9.33","4.9.34","4.9.35","4.9.36","4.9.37","4.9.38","4.9.39","4.9.40","4.9.41","4.9.42","4.9.43","4.9.44", "4.9.45","4.9.46","4.9.47","4.9.48","4.9.49","4.9.50","4.9.51","4.9.52","4.9.53","4.9.54","4.9.55","4.9.56","4.9.57","4.9.58","4.9.59","4.9.60","4.9.61","4.9.62", "4.9.63","4.9.64","4.9.65","4.9.66","4.9.67","4.9.68","4.9.69","4.9.70","4.9.71","4.9.72","4.9.73","4.9.74","4.9.75","4.9.76","4.9.77","4.9.78","4.9.79","4.9.80","4.9.81","4.9.82","4.9.83","4.9.84","4.9.85", - "4.9.86","4.9.87","4.9.88","4.9.89","4.9.90","4.9.91","4.9.92","4.9.93","4.9.94"}; + "4.9.86","4.9.87","4.9.88","4.9.89","4.9.90","4.9.91","4.9.92","4.9.93","4.9.94","4.9.95"}; // 版本列表(4.0版本升级4.1版需要分两步:先从4.0升到4.1.0、然后从4.1.0升级4.1最新版本) /*public final static String[] SOFTWARE_VERSION_ARRAY = new String[] {