Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java =================================================================== diff -u -r22618 -r22885 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 22618) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 22885) @@ -277,11 +277,11 @@ public void updateRecyclingStatus(Long useRecordId); /** - * 根据器械包实例id来查找借物单的id + * 根据器械包实例id来查找借物单(借物单状态不为已终止)的id * @param tousseInstanceId 器械包实例id * @return 返回借物单的id,如果是null则表示没找到 */ - Long getBorrowIdByTousseInstanceId(Long tousseInstanceId); + Long getNotEndedBorrowIdByTousseInstanceId(Long tousseInstanceId); /** * 手动更改借物单状态为已归还(此方法用于某些用户通过录使用记录来归还物品,因此导致借物单的状态无法变成已归还) Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r22747 -r22885 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 22747) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 22885) @@ -2200,8 +2200,8 @@ continue; } - //查询该包实例是否为发货到借物单的物品,如果是,则返回对应的借物单的id - Long borrowId = recyclingApplicationManager.getBorrowIdByTousseInstanceId(tousseInstance.getId()); + //查询该包实例是否为发货到借物单(且该借物单未终止)的物品,如果是,则返回对应的借物单的id + Long borrowId = recyclingApplicationManager.getNotEndedBorrowIdByTousseInstanceId(tousseInstance.getId()); if (borrowId != null){ //根据借物单id及包实例查询对应的借物物品归还情况,如果还未归还完则可以转换 canTransferToAppFlag = this.isCanTransferToAppFlag(temp, tousseInstance, borrowId); Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r22731 -r22885 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 22731) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 22885) @@ -74,6 +74,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.foreigntousseapplication.ForeignTousseApplication; import com.forgon.disinfectsystem.entity.goodsstock.GoodsStock; +import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; import com.forgon.disinfectsystem.entity.invoicemanager.enums.BorrowConfirmStatus; import com.forgon.disinfectsystem.entity.packing.PackingTask; @@ -4182,12 +4183,12 @@ } @Override - public Long getBorrowIdByTousseInstanceId(Long tousseInstanceId) { + public Long getNotEndedBorrowIdByTousseInstanceId(Long tousseInstanceId) { StringBuilder sql = new StringBuilder() - .append("select ip.id as \"borrowId\" from TousseInstance tis ") - .append("join Invoice i on tis.invoice_id = i.id ") - .append("join RecyclingApplication ip on i.invoicePlan_ID = ip.id ") - .append("where i.invoicePlanType = ? and tis.id = ? "); + .append("select ip.id as \"borrowId\" from "+ TousseInstance.class.getSimpleName() +" tis ") + .append("join "+ Invoice.class.getSimpleName() +" i on tis.invoice_id = i.id ") + .append("join "+ InvoicePlan.class.getSimpleName() +" ip on i.invoicePlan_ID = ip.id ") + .append("where i.invoicePlanType = ? and tis.id = ? and (ip.endStatus is null or ip.endStatus <> '"+ InvoicePlan.STATUS_END +"')"); List> list = objectDao.findSqlByParam(sql.toString(), new Object[]{InvoicePlan.TYPE_BORROWINGSINGLE, tousseInstanceId}); return CollectionUtils.isEmpty(list) ? null : MapUtils.getLong(list.get(0), "borrowId", null); }