Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/tousse/service/IDCardInstanceBindInstrumentManagerImpl.java =================================================================== diff -u -r34709 -r37872 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/tousse/service/IDCardInstanceBindInstrumentManagerImpl.java (.../IDCardInstanceBindInstrumentManagerImpl.java) (revision 34709) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/tousse/service/IDCardInstanceBindInstrumentManagerImpl.java (.../IDCardInstanceBindInstrumentManagerImpl.java) (revision 37872) @@ -11,13 +11,19 @@ import java.util.Map; import java.util.Set; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + import org.apache.commons.collections.MapUtils; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; import org.springframework.jdbc.core.BatchPreparedStatementSetter; import org.springframework.jdbc.core.JdbcTemplate; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager; +import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; import com.forgon.disinfectsystem.entity.basedatamanager.instrumentinstance.InstrumentInstance; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; @@ -29,13 +35,15 @@ import com.forgon.disinfectsystem.entity.idcardinstance.IDCardInstanceBindInstrument; import com.forgon.disinfectsystem.entity.idcardinstance.IDCardInstanceBindLog; import com.forgon.disinfectsystem.tousse.instrumentinstance.service.InstrumentInstanceManager; -import com.forgon.disinfectsystem.entity.receiverecord.ReceiveRecord; -import com.forgon.disinfectsystem.entity.receiverecord.ReceiveRecordItem; +import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.disinfectsystem.receiverecord.service.ReceiveRecordManager; import com.forgon.exception.SystemException; +import com.forgon.log.model.Log; +import com.forgon.log.service.LogManager; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.hibernate.BasePoManagerImpl; +import com.forgon.tools.json.JSONUtil; import com.forgon.tools.util.SqlUtils; public class IDCardInstanceBindInstrumentManagerImpl extends BasePoManagerImpl implements IDCardInstanceBindInstrumentManager { @@ -55,6 +63,18 @@ private InitDbConnection dbConnection; + private TousseDefinitionManager tousseDefinitionManager; + + private LogManager appLogManager; + + public void setAppLogManager(LogManager appLogManager) { + this.appLogManager = appLogManager; + } + + public void setTousseDefinitionManager(TousseDefinitionManager tousseDefinitionManager) { + this.tousseDefinitionManager = tousseDefinitionManager; + } + public void setDbConnection(InitDbConnection dbConnection) { this.dbConnection = dbConnection; } @@ -72,71 +92,143 @@ } @Override - public void IDCardInstanceBindingInstrument(Long iDCardInstanceId, Long instrumentInstanceId) { - IDCardInstanceBindingInstrumentWithOperateType(iDCardInstanceId, instrumentInstanceId, IDCardInstanceBindInstrument.bindOperateTypeEnum.MANUALADD.getValue()); + public void IDCardInstanceBindingInstrument(Long iDCardInstanceId, Long instrumentInstanceId, Long replaceMaterialDefinitionId) { + IDCardInstanceBindingInstrumentWithOperateType(iDCardInstanceId, null, replaceMaterialDefinitionId, instrumentInstanceId, IDCardInstanceBindInstrument.bindOperateTypeEnum.MANUALADD.getValue()); } - private void IDCardInstanceBindingInstrumentWithOperateType(Long iDCardInstanceId, Long instrumentInstanceId, String bindOperateType) { + /** + * 添加或者替换时,绑定器械实例 + * @param iDCardInstanceId 标识牌ID + * @param replaceInstrumentInstanceId 被替换的器械实例ID(只在替换操作时传参) + * @param replaceMaterialDefinitionIdWhenAdd 添加其它材料器械实例时,当前被替换的材料定义ID(只在添加操作时传参) + * @param bindInstrumentInstanceId 绑定的器械实例ID + * @param bindOperateType + */ + private void IDCardInstanceBindingInstrumentWithOperateType(Long iDCardInstanceId, Long replaceInstrumentInstanceId, Long replaceMaterialDefinitionIdWhenAdd, Long bindInstrumentInstanceId, String bindOperateType) { if(!DatabaseUtil.isPoIdValid(iDCardInstanceId)){ throw new SystemException("标识牌实例ID无效"); } IDCardInstance iDCardInstance = (IDCardInstance) objectDao.getById(IDCardInstance.class.getSimpleName(), iDCardInstanceId); if(iDCardInstance == null){ throw new SystemException("未找到id=" + iDCardInstanceId + "的标识牌实例"); } - if(!DatabaseUtil.isPoIdValid(instrumentInstanceId)){ + if(!DatabaseUtil.isPoIdValid(bindInstrumentInstanceId)){ throw new SystemException("器械实例ID无效"); } - InstrumentInstance instrumentInstance = instrumentInstanceManager.get(instrumentInstanceId); - if(instrumentInstance == null){ - throw new SystemException("未找到id=" + instrumentInstanceId + "的器械实例"); + InstrumentInstance bindInstrumentInstance = instrumentInstanceManager.get(bindInstrumentInstanceId); + if(bindInstrumentInstance == null){ + throw new SystemException("未找到id=" + bindInstrumentInstanceId + "的器械实例"); } - if(DatabaseUtil.isPoIdValid(instrumentInstance.getIdCardInstanceId()) - && iDCardInstanceId.longValue() != instrumentInstance.getIdCardInstanceId().longValue()){ + if(DatabaseUtil.isPoIdValid(bindInstrumentInstance.getIdCardInstanceId()) + && iDCardInstanceId.longValue() != bindInstrumentInstance.getIdCardInstanceId().longValue()){ throw new SystemException("器械实例已经绑定其它标识牌实例"); } //查询标识牌材料数量明细 Map materialAmountMap = getIDCardInstanceMaterialAmountMap(iDCardInstance); //判断标识牌实例关联的器械包定义是否包含器械实例对应的材料定义 - if(MapUtils.isEmpty(materialAmountMap) - || materialAmountMap.get(instrumentInstance.getMaterialDefinitionId()) == null - || materialAmountMap.get(instrumentInstance.getMaterialDefinitionId()) == 0){ - throw new SystemException("器械实例不能绑定标识牌实例,器械包定义不包含当前材料"); + if(MapUtils.isEmpty(materialAmountMap)){ + throw new SystemException("器械实例不能绑定标识牌实例,器械包定义材料明细为空"); } - //查询标识牌当前材料已经绑定的器械实例数量 + //当前材料的器械实例数量 String instrumentInstanceCountSql = String.format("select count(*) from %s ii where ii.idCardInstanceId = %s and ii.materialDefinitionId = %s", InstrumentInstance.class.getSimpleName(), iDCardInstance.getId(), - instrumentInstance.getMaterialDefinitionId()); + bindInstrumentInstance.getMaterialDefinitionId()); int bindInstrumentInstanceCount = objectDao.countBySql(instrumentInstanceCountSql); - if(bindInstrumentInstanceCount >= materialAmountMap.get(instrumentInstance.getMaterialDefinitionId())){ - throw new SystemException("器械实例不能绑定标识牌,绑定数量超过器械包实际材料数量"); + + //更新包定义的材料明细 + //绑定了不存在包定义材料明细中的材料器械实例,或者绑定数量大于材料数量 + Integer materialAmount = materialAmountMap.get(bindInstrumentInstance.getMaterialDefinitionId()); + if(materialAmount == null + || (bindInstrumentInstanceCount + 1) > materialAmount){ + //被替换的材料定义id + Long replaceInstrumentInstanceMaterialDefId = returnReplaceInstrumentInstanceMaterialDefId(bindOperateType, bindInstrumentInstance, replaceMaterialDefinitionIdWhenAdd, replaceInstrumentInstanceId); + if(!DatabaseUtil.isPoIdValid(replaceInstrumentInstanceMaterialDefId)){ + throw new SystemException("被替换的材料定义id无效"); + } + + //更新包定义的材料明细 + TousseDefinition tousseDefinition = iDCardInstance.getIDCardDefinition(objectDao).getTousseDefinition(objectDao); + List IDCardDefinitions = tousseDefinition.getIDCardDefinitions(objectDao); + if(CollectionUtils.isEmpty(IDCardDefinitions)){ + throw new SystemException("该包定义没有绑定标识牌。"); + } + if(IDCardDefinitions.size() > 1){ + throw new SystemException("该包定义已经创建多个标识牌,不能更换其他种类材料,如需更换请创建新的包定义。"); + } + //新增材料后,包定义的材料明细 + String materialInstanceStr = buildMaterialDefinitionConfigResult(tousseDefinition, replaceInstrumentInstanceMaterialDefId, bindInstrumentInstance.getMaterialDefinitionId()); + //保存包定义 + JSONObject materialItemsLog = tousseDefinitionManager.saveTousseDefinition(tousseDefinition, materialInstanceStr, tousseDefinition.getAncestorID(), TousseDefinition.UPDATE_MATERIAL_DISPOSABLE_MODE_BOTH); + //保存日志 + if(!materialItemsLog.isEmpty()){ + StringBuffer log = new StringBuffer(String.format("器械包名称:%s,%s", + tousseDefinition.getName(),JSONUtil.optString(materialItemsLog,"materialItemsLog",""))); + log.append(JSONUtil.optString(materialItemsLog,"materialItemsLog","")); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_TOUSSEDEFINITION, Log.TYPE_UPDATE, log.toString()); + } } //保存绑定日志 - saveIDCardInstanceBindLog(iDCardInstance, instrumentInstance, IDCardInstanceBindLog.operateTypeEnum.MANUAL.getValue(), bindOperateType); + saveIDCardInstanceBindLog(iDCardInstance, bindInstrumentInstance, IDCardInstanceBindLog.operateTypeEnum.MANUAL.getValue(), bindOperateType); //保存领用记录 - if(!DatabaseUtil.isPoIdValid(instrumentInstance.getReceiveRecordId())){ + if(!DatabaseUtil.isPoIdValid(bindInstrumentInstance.getReceiveRecordId())){ Map> receiveInstrumentInstanceMap = new HashMap>(); List list = new ArrayList(); - list.add(instrumentInstance); - receiveInstrumentInstanceMap.put(instrumentInstance.getMaterialDefinitionId(), list); + list.add(bindInstrumentInstance); + receiveInstrumentInstanceMap.put(bindInstrumentInstance.getMaterialDefinitionId(), list); receiveRecordManager.saveBindInstrumentInstanceReceiveRecord(receiveInstrumentInstanceMap); } //绑定器械实例 - instrumentInstance.setIdCardInstanceId(iDCardInstance.getId()); - objectDao.saveOrUpdate(instrumentInstance); + bindInstrumentInstance.setIdCardInstanceId(iDCardInstance.getId()); + objectDao.saveOrUpdate(bindInstrumentInstance); //设置绑定器械实例的标志(初始值为0,绑定后置为1) iDCardInstance.setBindInstrumentInstanceFlag(IDCardInstance.STATUS_BINDED); objectDao.saveOrUpdate(iDCardInstance); } /** + * 返回被替换的材料定义ID + * @param bindOperateType 绑定类型:MANUALADD("手工添加"),REPLACEADD("替换添加") + * @param bindInstrumentInstance 绑定的材料实例 + * @param replaceMaterialDefinitionIdWhenAdd "手工添加"时,被替换的材料定义ID(如果添加了其它材料的器械实例,需要减少原来材料数量) + * @param replaceInstrumentInstanceId "替换添加"时,被替换的器械实例ID + * @return + */ + private Long returnReplaceInstrumentInstanceMaterialDefId(String bindOperateType, InstrumentInstance bindInstrumentInstance, + Long replaceMaterialDefinitionIdWhenAdd, Long replaceInstrumentInstanceId) { + + Long replaceInstrumentInstanceMaterialDefId = null; + if(StringUtils.equals(bindOperateType, IDCardInstanceBindInstrument.bindOperateTypeEnum.MANUALADD.getValue())){ + //手工添加 + if(!DatabaseUtil.isPoIdValid(replaceMaterialDefinitionIdWhenAdd)){ + throw new SystemException("添加替换材料时,被替换的材料定义id不能为空"); + } + if(replaceMaterialDefinitionIdWhenAdd.equals(bindInstrumentInstance.getMaterialDefinitionId())){ + throw new SystemException("添加的器械为同一种材料,不需要替换"); + } + replaceInstrumentInstanceMaterialDefId = replaceMaterialDefinitionIdWhenAdd; + }else if(StringUtils.equals(bindOperateType, IDCardInstanceBindInstrument.bindOperateTypeEnum.REPLACEADD.getValue())){ + //替换添加 + if(!DatabaseUtil.isPoIdValid(replaceInstrumentInstanceId)){ + //非替换操作时,不允许绑定器械包定义材料列表中不存在的器械实例 + throw new SystemException("器械实例不能绑定标识牌实例,器械包定义不包含当前材料"); + } + InstrumentInstance oldInstrumentInstance = instrumentInstanceManager.get(replaceInstrumentInstanceId); + if(oldInstrumentInstance == null){ + throw new SystemException("未找到id=" + replaceInstrumentInstanceId + "的器械实例"); + } + replaceInstrumentInstanceMaterialDefId = oldInstrumentInstance.getMaterialDefinitionId(); + } + return replaceInstrumentInstanceMaterialDefId; + } + + /** * 查询标识牌材料数量明细 * @param iDCardInstance * @return @@ -252,7 +344,7 @@ public void IDCardInstanceReplaceInstrument(Long iDCardInstanceId, Long newInstrumentInstanceId, Long oldInstrumentInstanceId) { this.IDCardInstanceRemoveInstrumentWithOperateType(iDCardInstanceId, oldInstrumentInstanceId, IDCardInstanceBindInstrument.bindOperateTypeEnum.REPLACEREMOVE.getValue()); - this.IDCardInstanceBindingInstrumentWithOperateType(iDCardInstanceId, newInstrumentInstanceId, IDCardInstanceBindInstrument.bindOperateTypeEnum.REPLACEADD.getValue()); + this.IDCardInstanceBindingInstrumentWithOperateType(iDCardInstanceId, oldInstrumentInstanceId, null, newInstrumentInstanceId, IDCardInstanceBindInstrument.bindOperateTypeEnum.REPLACEADD.getValue()); } @SuppressWarnings("unchecked") @@ -503,5 +595,89 @@ } return true; } + + /** + * 构建包定义材料明细参数 + * @param tousseDefinition + * @param inventorySerialNumberMdMap + * @return + */ + private String buildMaterialDefinitionConfigResult(TousseDefinition tousseDefinition, Long replaceMaterialDefinitionId, Long newInstrumentInstanceMaterialId) { + if(!DatabaseUtil.isPoIdValid(replaceMaterialDefinitionId)){ + throw new RuntimeException("被替换的材料定义id不能为空!"); + } + if(!DatabaseUtil.isPoIdValid(newInstrumentInstanceMaterialId)){ + throw new RuntimeException("新添加器械实例的材料定义id不能为空!"); + } + JSONArray array = new JSONArray(); + List mis = tousseDefinition.getMaterialInstances(); + int sequence = 1; + //新替换进来的材料如果存在于当前包定义材料明细列表中,则只增加材料数量;否则需要新增材料 + boolean addNewMaterial = true; + //被替换掉的材料存在于当前包定义材料明细列表中,则减少材料数量,如果材料数量为0,则删除材料;如果材料不存在,则为异常材料定义id + boolean removeMaterial = false; + if(CollectionUtils.isNotEmpty(mis)){ + for (MaterialInstance mi : mis) { + JSONObject json = new JSONObject(); + MaterialDefinition md = mi.getMaterialDefinition(); + if(md == null){ + throw new RuntimeException("材料定义不能为空!"); + } + int count = mi.getCount(); + if(DatabaseUtil.isPoIdValid(newInstrumentInstanceMaterialId) && newInstrumentInstanceMaterialId.equals(md.getId())){ + count += 1; + addNewMaterial = false; + }else if(DatabaseUtil.isPoIdValid(replaceMaterialDefinitionId) && replaceMaterialDefinitionId.equals(md.getId())){ + count -= 1; + removeMaterial = true; + } + if(count <=0 ){ + continue; + } + json.put("name", md.getShowName()); + json.put("tousseType", mi.getType()); + json.put("count", count); + json.put("sequence", sequence); + array.add(json); + sequence++; + } + } + + if(!removeMaterial){ + throw new RuntimeException("不存在材料定义id为“"+ replaceMaterialDefinitionId + "”的材料!"); + } + + if(addNewMaterial){ + MaterialDefinition newMd = (MaterialDefinition) objectDao.getById(MaterialDefinition.class.getSimpleName(), newInstrumentInstanceMaterialId); + if(newMd == null){ + throw new RuntimeException("新增器械包实例的材料定义不能为空!"); + } + JSONObject newMdJson = new JSONObject(); + newMdJson.put("name", newMd.getShowName()); + newMdJson.put("tousseType", "器械"); + newMdJson.put("count", 1); + newMdJson.put("sequence", sequence); + array.add(newMdJson); + sequence++; + } + + List diposableGoodsItems = tousseDefinition.getDiposableGoodsItems(); + if(CollectionUtils.isNotEmpty(diposableGoodsItems)){ + for (DiposableGoodsInstance di : diposableGoodsItems) { + DisposableGoods dg = di.getDiposableGoods(); + if(dg == null){ + throw new RuntimeException("一次性物品材料定义不能为空!"); + } + JSONObject json = new JSONObject(); + json.put("name", dg.getShowName()); + json.put("tousseType", di.getType()); + json.put("count", di.getAmount()); + json.put("sequence", sequence); + array.add(json); + sequence++; + } + } + return array.toString(); + } } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/service/InstrumentInstanceManagerImpl.java =================================================================== diff -u -r36550 -r37872 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/service/InstrumentInstanceManagerImpl.java (.../InstrumentInstanceManagerImpl.java) (revision 36550) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/service/InstrumentInstanceManagerImpl.java (.../InstrumentInstanceManagerImpl.java) (revision 37872) @@ -1526,24 +1526,97 @@ } @Override - public JSONObject loadInstrumentInstancesByMaterialDefinitionID(Long materialDefinitionId, boolean noBindIDCardInstance, - Integer pageSize, Integer start) { + public JSONObject loadInstrumentInstancesByMaterialDefinitionID(Long materialDefinitionId, boolean noBindIDCardInstance + , String materialEntryStartTime, String materialEntryEndTime, String materialEntryItemSupplier + , String receiveStatus, String UDICode, String instrumentBarcode + , Integer pageSize, Integer start) { if(!DatabaseUtil.isPoIdValid(materialDefinitionId)){ throw new SystemException("材料定义ID无效"); } List voList = new ArrayList(); - //器械实例与领用记录关联关系未知,暂时记未“未领用” + + //是否只查询没有绑定标识牌的器械实例 + String noBindIDCardInstanceWhereSql = ""; + if(noBindIDCardInstance){ + noBindIDCardInstanceWhereSql = " and ii.idCardInstanceId is null "; + } + + //材料入库单相关查询条件 + String materialEntryJoinSql = ""; + String materialEntryWhereSql = ""; + if((StringUtils.isNotBlank(materialEntryStartTime) + && StringUtils.isNotBlank(materialEntryEndTime)) + || StringUtils.isNotBlank(materialEntryItemSupplier)){ + materialEntryJoinSql = new StringBuffer() + .append("join ") + .append(MaterialEntry.class.getSimpleName()) + .append(" me on me.id = ii.materialEntryId ") + .append("join ") + .append(MaterialEntryItem.class.getSimpleName()) + .append(" mei on mei.materialEntry_id = me.id and mei.materialDefinition_id = md.id ") + .toString(); + + StringBuffer materialEntryWhereSqlStringBuffer = new StringBuffer(); + + //入库日期 + if(StringUtils.isNotBlank(materialEntryStartTime) + && StringUtils.isNotBlank(materialEntryEndTime)){ + Date materialEntryStartTimeObj = DateTools.coverStrToDate(materialEntryStartTime, DateTools.COMMON_DATE_HM); + Date materialEntryEndTimeObj = DateTools.coverStrToDate(materialEntryEndTime, DateTools.COMMON_DATE_HM); + if(materialEntryStartTimeObj != null && materialEntryEndTimeObj != null){ + String materialEntryTimeSql = dateQueryAdapter.dateAreaSql("me.time", materialEntryStartTime, materialEntryEndTime); + materialEntryWhereSqlStringBuffer.append(" and ") + .append(materialEntryTimeSql); + } + } + + //供应商 + if(StringUtils.isNotBlank(materialEntryItemSupplier)){ + materialEntryWhereSqlStringBuffer.append(" and mei.supplierName = '") + .append(materialEntryItemSupplier) + .append("' "); + } + + materialEntryWhereSql = materialEntryWhereSqlStringBuffer.toString(); + } + + //是否已领用 + String receiveStatusWhereSql = ""; + if(StringUtils.isNotBlank(receiveStatus) && !receiveStatus.contains("全部")){ + //选项为“全部”、“已领用”、“未领用”; + if(StringUtils.equals("已领用", receiveStatus)){ + receiveStatusWhereSql = " and ii.receiveRecordId is not null "; + }else if(StringUtils.equals("未领用", receiveStatus)){ + receiveStatusWhereSql = " and ii.receiveRecordId is null "; + } + } + + //UDI码 + String udiWhereSql = ""; + if(StringUtils.isNotBlank(UDICode)){ + udiWhereSql = new StringBuffer(" and ii.udi = '").append(UDICode).append("' ").toString(); + } + + //器械条码 + String instrumentBarcodeWhereSql = ""; + if(StringUtils.isNotBlank(instrumentBarcode)){ + instrumentBarcodeWhereSql = new StringBuffer(" and ii.instrumentBarcode = '").append(instrumentBarcode).append("' ").toString(); + } + String fromSql = String.format(" from %s ii " + "join %s md on ii.materialDefinitionId = md.id " - + "where md.id = %s ", + + materialEntryJoinSql + + "where md.id = %s " + + udiWhereSql + + instrumentBarcodeWhereSql + + noBindIDCardInstanceWhereSql + + receiveStatusWhereSql + + materialEntryWhereSql, InstrumentInstance.class.getSimpleName(), MaterialDefinition.class.getSimpleName(), materialDefinitionId); - if(noBindIDCardInstance){ - fromSql += " and ii.idCardInstanceId is null "; - } if(pageSize == null || pageSize <= 0){ pageSize = 20; Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/service/InstrumentInstanceManager.java =================================================================== diff -u -r35430 -r37872 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/service/InstrumentInstanceManager.java (.../InstrumentInstanceManager.java) (revision 35430) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/service/InstrumentInstanceManager.java (.../InstrumentInstanceManager.java) (revision 37872) @@ -81,14 +81,20 @@ Long instrumentInstanceId); /** - * 加载没有绑定标识牌实例的器械实例 - * @param materialDefinitionId 材料定义ID - * @param noBindIDCardInstance 是否只查询不绑定标识牌实例的器械实例 - * @param start - * @param limit + * 加载标识牌实例的器械实例 + * @param materialDefinitionId 材料定义ID + * @param noBindIDCardInstance 是否只查询不绑定标识牌实例的器械实例 + * @param materialEntryStartTime 材料入库单开始时间 + * @param materialEntryEndTime 材料入库单结束时间 + * @param materialEntryItemSupplier 材料入库单供应商 + * @param receiveStatus 是否已领 + * @param UDICode UDI码 + * @param instrumentBarcode 器械条码 + * @param limit + * @param start * @return */ - public JSONObject loadInstrumentInstancesByMaterialDefinitionID(Long materialDefinitionId, boolean noBindIDCardInstance, Integer limit, Integer start); + public JSONObject loadInstrumentInstancesByMaterialDefinitionID(Long materialDefinitionId, boolean noBindIDCardInstance, String materialEntryStartTime, String materialEntryEndTime, String materialEntryItemSupplier, String receiveStatus, String UDICode, String instrumentBarcode, Integer limit, Integer start); /** * 加载器械实例关联的使用记录 Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/tousse/service/IDCardInstanceBindInstrumentManager.java =================================================================== diff -u -r34601 -r37872 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/tousse/service/IDCardInstanceBindInstrumentManager.java (.../IDCardInstanceBindInstrumentManager.java) (revision 34601) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/tousse/service/IDCardInstanceBindInstrumentManager.java (.../IDCardInstanceBindInstrumentManager.java) (revision 37872) @@ -14,7 +14,7 @@ * @param instrumentInstanceId 器械实例ID */ public void IDCardInstanceBindingInstrument(Long iDCardInstanceId, - Long instrumentInstanceId); + Long instrumentInstanceId, Long replaceMaterialDefinitionId); /** * 标识牌实例移除器械实例明细 Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/controller/InstrumentInstanceController.java =================================================================== diff -u -r35430 -r37872 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/controller/InstrumentInstanceController.java (.../InstrumentInstanceController.java) (revision 35430) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/controller/InstrumentInstanceController.java (.../InstrumentInstanceController.java) (revision 37872) @@ -90,11 +90,15 @@ */ @RequestMapping("/loadInstrumentInstancesByMaterialDefinitionID") public String loadInstrumentInstancesByMaterialDefinitionID(Long materialDefinitionId, boolean noBindIDCardInstance, + String materialEntryStartTime, String materialEntryEndTime, String materialEntryItemSupplier, + String receiveStatus, String UDICode, String instrumentBarcode, Integer limit, Integer start){ JSONObject result = JSONUtil.buildJsonObject(true); try { result = instrumentInstanceManager.loadInstrumentInstancesByMaterialDefinitionID( materialDefinitionId, noBindIDCardInstance, + materialEntryStartTime, materialEntryEndTime, materialEntryItemSupplier, + receiveStatus, UDICode, instrumentBarcode, limit, start); } catch (Exception e) { result = JSONUtil.buildJsonObject(false, "加载失败:" + e.getMessage()); Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/tousse/controller/IDCardInstanceBindInstrumentController.java =================================================================== diff -u -r34597 -r37872 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/tousse/controller/IDCardInstanceBindInstrumentController.java (.../IDCardInstanceBindInstrumentController.java) (revision 34597) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/tousse/controller/IDCardInstanceBindInstrumentController.java (.../IDCardInstanceBindInstrumentController.java) (revision 37872) @@ -24,10 +24,10 @@ * @return */ @RequestMapping("/IDCardInstanceBindInstrument") - public String IDCardInstanceBindInstrument(Long IDCardInstanceId, Long instrumentInstanceId){ + public String IDCardInstanceBindInstrument(Long IDCardInstanceId, Long instrumentInstanceId, Long replaceMaterialDefinitionId){ JSONObject result = JSONUtil.buildJsonObject(true, "添加成功"); try { - idCardInstanceBindInstrumentManager.IDCardInstanceBindingInstrument(IDCardInstanceId, instrumentInstanceId); + idCardInstanceBindInstrumentManager.IDCardInstanceBindingInstrument(IDCardInstanceId, instrumentInstanceId, replaceMaterialDefinitionId); } catch (Exception e) { result = JSONUtil.buildJsonObject(false, "添加失败:" + e.getMessage()); }