Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r28073 -r28369 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 28073) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 28369) @@ -66,11 +66,13 @@ import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.taskGroup.TaskGroup; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ForeignTousseCombo; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.basedatamanager.videomanager.VideoFile; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.idcardinstance.IDCardInstance; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.goodFilterConfig.service.GoodFilterConfigManager; import com.forgon.disinfectsystem.goodsBindingConfig.vo.BindGoodVo; @@ -88,6 +90,8 @@ import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; import com.forgon.tools.FileSystemHelper; +import com.forgon.tools.GB2Alpha; +import com.forgon.tools.GB2WB; import com.forgon.tools.ImageUtils; import com.forgon.tools.SqlBuilder; import com.forgon.tools.StrutsParamUtils; @@ -99,6 +103,7 @@ import com.forgon.tools.string.StringTools; import com.forgon.tools.util.ForgonDateUtils; import com.forgon.tools.util.PageUtil; +import com.forgon.tools.util.SpringUtils; import com.forgon.tools.util.SqlUtils; import com.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.Preparable; @@ -1182,6 +1187,207 @@ } /** + * 加载外来器械包组合关系表的接口 + */ + @SuppressWarnings("unchecked") + public void loadForeignTousseCombosList(){ + try { + int limit = StrutsParamUtils.getPraramValue("limit", 20); + int offset = StrutsParamUtils.getPraramValue("start", 0); + String sort = StrutsParamUtils.getPraramValue("sort", ""); + String search = StrutsParamUtils.getPraramValue("query", null); + String searchFields = StrutsParamUtils.getPraramValue("fields", null); + + String orderBy = ""; + // 排序 + if(StringUtils.isNotBlank(sort)){ + JSONArray sortJsonArr = JSONArray.fromObject(sort); + if(sortJsonArr.size() > 0){ + for (int i=0;i 0){ + List foreignTousseCombos = objectDao.findBySql(ForeignTousseCombo.class.getSimpleName(), sql, offset, limit, orderBy); + if(CollectionUtils.isNotEmpty(foreignTousseCombos)){ + for (ForeignTousseCombo combo : foreignTousseCombos) { + JSONObject json = new JSONObject(); + json.put("id", combo.getId()); + json.put("tousseName", combo.getTousseName()); + json.put("spelling", combo.getSpelling()); + json.put("wbCode", combo.getWbCode()); + json.put("remark", combo.getRemark()); + rows.add(json); + } + } + } + JSONObject jsonObject = JSONUtil.buildJsonObject(true); + jsonObject.put(JSONUtil.JSON_KEY_ROWS, rows); + jsonObject.put(JSONUtil.JSON_KEY_TOTAL, count); + StrutsResponseUtils.output(jsonObject); + } catch (Exception e) { + e.printStackTrace(); + JSONObject jsonObject = JSONUtil.buildJsonObject(false, e.getMessage()); + StrutsResponseUtils.output(jsonObject); + } + } + + /** + * 根据外来器械包定义id获取同一组合里的其它外来器械包 + */ + public void loadComboTousseByForeignTousseId(){ + try { + Long foreignTousseId = StrutsParamUtils.getPraramLongValue("foreignTousseId", 0L); + Boolean showForeignTousseAncestorDefinition = StrutsParamUtils.getBoolPraramValue("isShowForeignTousseAncestorDefinitionForApply", true); + List combsTousseList = tousseDefinitionManager.loadComboTousseByForeignTousseId(foreignTousseId, showForeignTousseAncestorDefinition); + JSONArray data = new JSONArray(); + if(CollectionUtils.isNotEmpty(combsTousseList)){ + for (TousseDefinition tousseDefinition : combsTousseList) { + JSONObject tousseJson = new JSONObject(); + tousseJson.put("id", tousseDefinition.getId()); + tousseJson.put("name", tousseDefinition.getName()); + tousseJson.put("price", tousseDefinition.getPrice()); + tousseJson.put("packageSize", tousseDefinition.getPackageSize()); + tousseJson.put("packageType", tousseDefinition.getPackageType()); + tousseJson.put("supplierName", tousseDefinition.getSupplierName()); + JSONArray materials = new JSONArray(); + List materialInstances = tousseDefinition.getMaterialInstances(); + if(CollectionUtils.isNotEmpty(materialInstances)){ + for (MaterialInstance materialInstance : materialInstances) { + JSONObject json = new JSONObject(); + json.put("id", materialInstance.getId()); + json.put("mterialName", materialInstance.getMaterialName()); + json.put("amount", materialInstance.getCount()); + json.put("includeImplant", materialInstance.getIsImplant()); + json.put("minDismantleAmount", materialInstance.getMinDismantleAmount()); + json.put("washClassifyType", materialInstance.getWashClassifyType()); + materials.add(json); + } + } + tousseJson.put("materials", materials); + data.add(tousseJson); + } + } + JSONObject jsonObject = JSONUtil.buildJsonObject(true, data); + StrutsResponseUtils.output(jsonObject); + } catch (Exception e) { + e.printStackTrace(); + JSONObject jsonObject = JSONUtil.buildJsonObject(false, e.getMessage()); + StrutsResponseUtils.output(jsonObject); + } + } + + /** + * 根据外来器械包组合关系表,加载组合中的外来器械包 + */ + public void loadForeignTousseAndComboTousse(){ + try { + Long comboId = StrutsParamUtils.getPraramLongValue("comboId", 0L); + Boolean showForeignTousseAncestorDefinition = StrutsParamUtils.getBoolPraramValue("showForeignTousseAncestorDefinition", true); + ForeignTousseCombo combo = tousseDefinitionManager.getForeignTousseComboById(comboId); + if(combo == null){ + throw new RuntimeException("外来器械包组合不存在"); + } + JSONObject jsonObject = new JSONObject(); + JSONObject data = new JSONObject(); + JSONArray comboTousses = new JSONArray(); + data.put("id", combo.getId()); + data.put("tousseName", combo.getTousseName()); + data.put("wbCode", combo.getWbCode()); + data.put("spelling", combo.getSpelling()); + data.put("remark", combo.getRemark()); + + List combsTousseList = tousseDefinitionManager.getCombForeignTousseDefinition(combo.getId(), showForeignTousseAncestorDefinition); + if(CollectionUtils.isNotEmpty(combsTousseList)){ + for (TousseDefinition tousseDefinition : combsTousseList) { + JSONObject tousseJson = new JSONObject(); + tousseJson.put("id", tousseDefinition.getId()); + tousseJson.put("name", tousseDefinition.getName()); + tousseJson.put("packageType", tousseDefinition.getPackageType()); + tousseJson.put("supplierName", tousseDefinition.getSupplierName()); + comboTousses.add(tousseJson); + } + } + data.put("comboTousses", comboTousses); + jsonObject = JSONUtil.buildJsonObject(true, data); + StrutsResponseUtils.output(jsonObject); + } catch (Exception e) { + e.printStackTrace(); + JSONObject jsonObject = JSONUtil.buildJsonObject(false, e.getMessage()); + StrutsResponseUtils.output(jsonObject); + } + } + + /** + * 设置外来器械包组合 + */ + public void bindingForeignComboTousse(){ + try { + // 组合关系表id + Long comboId = StrutsParamUtils.getPraramLongValue("comboId", 0L); + // 需要组合的外来器械包定义id,以","分割 + String comboTousseIds = StrutsParamUtils.getPraramValue("comboTousseIds", ""); + String tousseName = StrutsParamUtils.getPraramValue("tousseName", ""); + String spelling = GB2Alpha.string2Alpha(tousseName); + String wbCode = GB2WB.getWBCode(tousseName); + String remark = StrutsParamUtils.getPraramValue("remark", ""); + ForeignTousseCombo combo = null; + if(DatabaseUtil.isPoIdValid(comboId)){ + combo = tousseDefinitionManager.getForeignTousseComboById(comboId); + } + if(combo == null){ + combo = new ForeignTousseCombo(); + } + combo.setTousseName(tousseName); + combo.setSpelling(spelling); + combo.setWbCode(wbCode); + combo.setRemark(remark); + tousseDefinitionManager.bindingForeignComboTousse(comboTousseIds, combo); + JSONObject jsonObject = JSONUtil.buildJsonObject(true, "保存成功"); + StrutsResponseUtils.output(jsonObject); + } catch (Exception e) { + e.printStackTrace(); + JSONObject jsonObject = JSONUtil.buildJsonObject(false, e.getMessage()); + StrutsResponseUtils.output(jsonObject); + } + } + + /** + * 删除外来器械包组合关系 + */ + public void deleteForeignCombo(){ + try { + // 外来器械包组合关系表的id,多个id用","分割 + String comboIds = StrutsParamUtils.getPraramValue("comboIds", ""); + tousseDefinitionManager.deleteForeignComboByIds(comboIds); + JSONObject jsonObject = JSONUtil.buildJsonObject(true, "删除成功"); + StrutsResponseUtils.output(jsonObject); + } catch (Exception e) { + e.printStackTrace(); + JSONObject jsonObject = JSONUtil.buildJsonObject(false, e.getMessage()); + StrutsResponseUtils.output(jsonObject); + } + } + + /** * 根据器械包定义id获取所属科室信息 */ public void loadTousseBelongOrgUnitByTDId(){ @@ -1417,6 +1623,8 @@ jsonObject.put("id", tousseDefinition.getId()); jsonObject.put("name", tousseDefinition.getName()); jsonObject.put("displayName", tousseDefinition.getName()); + jsonObject.put("spelling", tousseDefinition.getSpelling()); + jsonObject.put("wbCode", tousseDefinition.getWbCode()); jsonArray.add(jsonObject); } } @@ -2316,7 +2524,9 @@ tousseDefinition = new TousseDefinition(); if (DatabaseUtil.isPoIdValid(id)) { origineTd = tousseDefinitionManager.get(id); - BeanUtils.copyProperties(origineTd,tousseDefinition); + if(origineTd != null){ + BeanUtils.copyProperties(origineTd,tousseDefinition); + } } else { origineTd = null; } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java =================================================================== diff -u -r28328 -r28369 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 28328) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 28369) @@ -11,6 +11,7 @@ import com.forgon.directory.model.CssdHandleTousses; import com.forgon.directory.model.OrgUnit; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ForeignTousseCombo; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.idcardinstance.IDCardInstance; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; @@ -804,4 +805,39 @@ * @return */ public List getTousseDefinitionListNotInCssdHandleTousses(Collection tdIds); + + /** + * 获取同一组合里的外来器械包 + * @param foreignComboId + * @param showForeignTousseAncestorDefinition + * @return + */ + public List getCombForeignTousseDefinition(Long foreignComboId, Boolean showForeignTousseAncestorDefinition); + + /** + * 设置外来器械包组合 + * @param comboTousseIds 要绑定的外来器械包定义id,多个id用","分割 + * @param combo + */ + public void bindingForeignComboTousse(String comboTousseIds, ForeignTousseCombo combo); + + /** + * 根据ID获取外来器械包组合 + * @param id + * @return + */ + public ForeignTousseCombo getForeignTousseComboById(Long id); + + /** + * 批量删除外来器械包组合 + * @param comboIds 外来器械包组合表的id,多个id用","分割 + */ + public void deleteForeignComboByIds(String comboIds); + + /** + * 根据外来器械包定义id获取与之同一组合的外来器械包定义(包括id指定的外来器械包定义) + * @param foreignTousseId 外来器械包定义id + * @return + */ + public List loadComboTousseByForeignTousseId(Long foreignTousseId, Boolean showForeignTousseAncestorDefinition); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r28328 -r28369 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 28328) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 28369) @@ -64,6 +64,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ComboTousseComposite; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ComboTousseOrgUint; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ForeignTousseCombo; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.basedatamanager.videomanager.VideoFile; @@ -1065,6 +1066,7 @@ temp.put("foreignToussePrintAmount", tousseDefinition.getForeignToussePrintAmount()); temp.put("splitNumber", tousseDefinition.getSplitNumber()); temp.put("allowModifyPackageType", tousseDefinition.getAllowModifyPackageType()); + temp.put("packageType", tousseDefinition.getPackageType()); // //附带查出每个供应商对应的序号排第一位的手机联系人 // String supplierContactSql = " where po.supplier.companyName = '" + tousseDefinition.getSupplierName() + "'order by sequence asc"; // SupplierContact supplierContact = (SupplierContact) objectDao.getBySql(SupplierContact.class.getSimpleName(), supplierContactSql); @@ -4572,4 +4574,144 @@ TousseDefinition.class.getSimpleName(), sql); } + @SuppressWarnings("unchecked") + @Override + public List getCombForeignTousseDefinition(Long foreignComboId, Boolean showForeignTousseAncestorDefinition) { + if(!DatabaseUtil.isPoIdValid(foreignComboId)){ + throw new RuntimeException("外来器械包组合ID无效"); + } + String tousseSql = String.format(" where po.foreignComboId = %d order by po.name ", foreignComboId); + List ancestorTds = objectDao.findBySql(TousseDefinition.class.getSimpleName(), tousseSql); + if(showForeignTousseAncestorDefinition){ + return ancestorTds; + } else { + // 查最近新建的外来器械包定义 + List tousseList = new ArrayList(); + + List ancestorIds = new ArrayList(); + if(CollectionUtils.isNotEmpty(ancestorTds)){ + for(TousseDefinition td : ancestorTds){ + ancestorIds.add(td.getId()); + } + String sql = " select max(po.id) from TousseDefinition po where " + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.ancestorID", ancestorIds) + " group by po.name, po.ancestorID "; + List idList = new ArrayList(); + ResultSet rs = null; + + try { + rs = objectDao.executeSql(sql); + while(rs.next()){ + idList.add(rs.getLong(1)); + } + } catch (SQLException e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + String sql2 = String.format(" where 1=1 and %s ", SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.id", idList)); + tousseList = objectDao.findBySql(TousseDefinition.class.getSimpleName(), sql2); + } + return tousseList; + } + } + + @SuppressWarnings("unchecked") + @Override + public void bindingForeignComboTousse(String comboTousseIds, ForeignTousseCombo combo) { + if(combo == null){ + throw new RuntimeException("参数错误"); + } + if(StringUtils.isBlank(comboTousseIds)){ + throw new RuntimeException("外来器械包定义id不能为空"); + } + List comboTousseIdList = Arrays.asList(comboTousseIds.split(",")); + List tousseDefinitions = objectDao.findByIds(TousseDefinition.class.getSimpleName(), comboTousseIdList); + if(CollectionUtils.isEmpty(tousseDefinitions)){ + throw new RuntimeException("外来器械包定义不存在"); + } + + //取外来器械包的祖先包进行组合 + List ancestorIdList = new ArrayList(); + for (TousseDefinition tousseDefinition : tousseDefinitions) { + ancestorIdList.add(tousseDefinition.getAncestorID()); + } + List ancestorTD = objectDao.findByIds(TousseDefinition.class.getSimpleName(), ancestorIdList); + + // 验证外来器械包是否可以添加外来器械包组合:非外来器械包或者已经存在外来器械包组合的器械包不可以添加外来器械包组合 + for (TousseDefinition tousseDefinition : ancestorTD) { + if(!TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tousseDefinition.getTousseType())){ + throw new RuntimeException(tousseDefinition.getName() + "不是外来器械包"); + } + if(tousseDefinition.getForeignComboId() != null ){ + //&& combo.getId() == null && tousseDefinition.getForeignComboId().longValue() != combo.getId().longValue() + if(combo.getId() == null || tousseDefinition.getForeignComboId().longValue() != combo.getId().longValue()){ + throw new RuntimeException(tousseDefinition.getName() + "已经和其它器械包存在组合关系"); + } + } + } + + // 先解除旧的外来器械包组合 + if(DatabaseUtil.isPoIdValid(combo.getId())){ + //objectDao.excuteSQL("update TousseDefinition set foreignComboId = null where foreignComboId = " + combo.getId()); + List oldTousseDefinitions = this.getCombForeignTousseDefinition(combo.getId(), true); + if(CollectionUtils.isNotEmpty(oldTousseDefinitions)){ + for (TousseDefinition tousseDefinition : oldTousseDefinitions) { + tousseDefinition.setForeignComboId(null); + } + objectDao.batchSaveOrUpdate(oldTousseDefinitions); + } + } + + objectDao.saveOrUpdate(combo); + + // 重新设置外来器械包组合 + for (TousseDefinition tousseDefinition : ancestorTD) { + tousseDefinition.setForeignComboId(combo.getId()); + } + objectDao.batchSaveOrUpdate(ancestorTD); + + } + + @Override + public ForeignTousseCombo getForeignTousseComboById(Long id) { + if(!DatabaseUtil.isPoIdValid(id)){ + throw new RuntimeException("id无效"); + } + return (ForeignTousseCombo) objectDao.getById(ForeignTousseCombo.class.getSimpleName(), id); + } + + @SuppressWarnings("unchecked") + @Override + public void deleteForeignComboByIds(String comboIds) { + if(StringUtils.isBlank(comboIds)){ + throw new RuntimeException("id不能为空"); + } + String sql = String.format(" where po.id in (%s) ", comboIds); + List foreignCombos = objectDao.findBySql(ForeignTousseCombo.class.getSimpleName(), sql); + if(CollectionUtils.isNotEmpty(foreignCombos)){ + // 解除外来器械包组合 + String tousseSql = String.format(" where po.foreignComboId in (%s) ", comboIds); + List oldTousseDefinitions = objectDao.findBySql(TousseDefinition.class.getSimpleName(), tousseSql); + if(CollectionUtils.isNotEmpty(oldTousseDefinitions)){ + for (TousseDefinition tousseDefinition : oldTousseDefinitions) { + tousseDefinition.setForeignComboId(null); + } + objectDao.batchSaveOrUpdate(oldTousseDefinitions); + } + objectDao.deleteAll(foreignCombos); + } + } + + @Override + public List loadComboTousseByForeignTousseId(Long foreignTousseId, Boolean showForeignTousseAncestorDefinition) { + if(!DatabaseUtil.isPoIdValid(foreignTousseId)){ + throw new RuntimeException("id无效"); + } + TousseDefinition foreignTousse = this.get(foreignTousseId); + TousseDefinition ancestorTousse = this.get(foreignTousse.getAncestorID()); + if(!DatabaseUtil.isPoIdValid(ancestorTousse.getForeignComboId())){ + return null; + } + return this.getCombForeignTousseDefinition(ancestorTousse.getForeignComboId(), showForeignTousseAncestorDefinition); + } + } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/ForeignTousseCombo.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/ForeignTousseCombo.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/ForeignTousseCombo.java (revision 28369) @@ -0,0 +1,90 @@ +package com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +/** + * 外来器械包组合表(GDSRMYY-466 外来器械包申请时互相绑定申请添加) + * @author ZhouPeiMian + * @since 2020-06-29 + */ +@Entity +@DynamicInsert(false) +@DynamicUpdate(true) +@Table(name = "ForeignTousseCombo") +public class ForeignTousseCombo { + + /** + * id,主键/自增长 + */ + private Long id; + + /** + * 器械包名称 + */ + private String tousseName; + + /** + * 拼音码 + */ + private String spelling; + + /** + * 五笔码 + */ + private String wbCode; + + /** + * 备注 + */ + private String remark; + + @Id + @GeneratedValue(strategy=GenerationType.AUTO) + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getTousseName() { + return tousseName; + } + + public void setTousseName(String tousseName) { + this.tousseName = tousseName; + } + + public String getSpelling() { + return spelling; + } + + public void setSpelling(String spelling) { + this.spelling = spelling; + } + + public String getWbCode() { + return wbCode; + } + + public void setWbCode(String wbCode) { + this.wbCode = wbCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + +} Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java =================================================================== diff -u -r27971 -r28369 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 27971) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 28369) @@ -655,6 +655,11 @@ */ private String explain; + /** + * 外来器械组合表id + */ + private Long foreignComboId; + @Override @Id @GeneratedValue(strategy = GenerationType.AUTO) @@ -2141,4 +2146,12 @@ this.explain = explain; } + public Long getForeignComboId() { + return foreignComboId; + } + + public void setForeignComboId(Long foreignComboId) { + this.foreignComboId = foreignComboId; + } + }