Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java =================================================================== diff -u -r36539 -r36541 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 36539) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 36541) @@ -287,8 +287,22 @@ public Map createReturnApplication(String applicant, Long borrowApplicationId, Map applyReturnTousses, ReturnGoodVo returnGoodVo, boolean isCreateReturnApplication); - /** + * 创建“申请还物单”
+ * applyReturnTousses参数为申请归还的物品
+ * 传入actualReturnTousses作为输出参数,此方法会把实际归还的物品放入map中
+ * 返回值为剩余归还物品,即 [ 申请归还物品 - 实际归还物品 = 剩余归还物品] + * + * @param applicant + * @param borrowApplication 借物单 + * @param applyReturnTousses + * @param returnGoodVo 输出参数,记录处理的信息 + * @return + */ + public Map createReturnApplication(String applicant, + RecyclingApplication borrowApplication, Map applyReturnTousses, + ReturnGoodVo returnGoodVo, boolean isCreateReturnApplication); + /** * 根据申请科室编码查找未归还的借物单(归还状态不为已终止及已归还) * @param departCode 申请科室编码 * @return Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r36539 -r36541 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 36539) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 36541) @@ -6544,24 +6544,18 @@ // 实际归还的物品 // MultiValueMap actualAllReturnTousses = new MultiValueMap<>(); ReturnGoodVo returnGoodVo = new ReturnGoodVo(); + // BJ307YY-85 自动创建的申请还物单,申请人应该为申请单的提交人 + String applicant = AcegiHelper.getLoginUser().getUserFullName(); for (InvoicePlan borrowApplication : borrowApplications) { Map canReturnAmount = invoicePlanManager.getCanReturnAmount((RecyclingApplication)borrowApplication); if (org.apache.commons.collections.MapUtils.isEmpty(canReturnAmount)) { continue; } - logger.info("通过申请单来归还物品开始..."); - logger.info("借物单:" + borrowApplication.getId() + "剩余归还的数量是-" + canReturnAmount); - logger.info("这次申请归还的物品数量是:" + restApplyTousses); //归还的物品的数量,在归还前重新计算一下,因为有可能这次申请的数量大于要归还的数量(createReturnApplication方法中当归还的数量大于最大可归还的数量时会报错),如果大于则归还数量是最大的待归还数量,如果小于则归还数量是这次申请的数量 Map applyTousses = this.calculateBeforeReturn(restApplyTousses, canReturnAmount); - logger.info("这次归还物品数量是:" + applyTousses); -// Map actualReturnTousses = new HashMap<>(); - // BJ307YY-85 自动创建的申请还物单,申请人应该为申请单的提交人 - String applicant = AcegiHelper.getLoginUser().getUserFullName(); - this.createReturnApplication(applicant, borrowApplication.getId(), applyTousses, returnGoodVo, true); -// actualAllReturnTousses.putAll(actualReturnTousses); -// logger.info("这次实际归还了的数量是" + actualAllReturnTousses); - logger.info("剩余的申请物品的数量是" + restApplyTousses); + if(borrowApplication != null && borrowApplication instanceof RecyclingApplication){ + this.createReturnApplication(applicant, (RecyclingApplication)borrowApplication, applyTousses, returnGoodVo, true); + } } // returnGoodVo.setActualAllReturnTousses(actualAllReturnTousses); returnGoodVo.setRestApplyTousses(restApplyTousses); @@ -6604,27 +6598,11 @@ } return applyTousses; } - - /** - * 创建“申请还物单”
- * applyReturnTousses参数为申请归还的物品
- * 传入actualReturnTousses作为输出参数,此方法会把实际归还的物品放入map中
- * 返回值为剩余归还物品,即 [ 申请归还物品 - 实际归还物品 = 剩余归还物品] - * - * @param applicant 申请人 - * @param borrowApplicationId 借物单id - * @param applyReturnTousses 此次申请归还物品及数量的Map - * @param OUT_actualReturnTousses 实际归还物品及数量的Map - * @param isCreateReturnApplication 是否需要创建申请还物单 - * @return - */ @Override public Map createReturnApplication(String applicant, - Long borrowApplicationId, Map applyReturnTousses, - ReturnGoodVo returnGoodVo, boolean isCreateReturnApplication) { - RecyclingApplication borrowApplication = (RecyclingApplication) objectDao - .getByProperty_ForUpdate(RecyclingApplication.class.getSimpleName(), - "id", borrowApplicationId); + RecyclingApplication borrowApplication, + Map applyReturnTousses, ReturnGoodVo returnGoodVo, + boolean isCreateReturnApplication) { if(borrowApplication == null) return applyReturnTousses; if(MapUtils.isEmpty(applyReturnTousses) || MathTools.sum(applyReturnTousses.values()).intValue() == 0) @@ -6705,6 +6683,28 @@ //已转换申请单的各包数量,由于不再考虑使用记录转申请单的这种情况,不改变原方法定义,所以传空map的参数 return this.calculateRestAmount(new HashMap(), applyReturnTousses,unreturnTousseMap); } + /** + * 创建“申请还物单”
+ * applyReturnTousses参数为申请归还的物品
+ * 传入actualReturnTousses作为输出参数,此方法会把实际归还的物品放入map中
+ * 返回值为剩余归还物品,即 [ 申请归还物品 - 实际归还物品 = 剩余归还物品] + * + * @param applicant 申请人 + * @param borrowApplicationId 借物单id + * @param applyReturnTousses 此次申请归还物品及数量的Map + * @param OUT_actualReturnTousses 实际归还物品及数量的Map + * @param isCreateReturnApplication 是否需要创建申请还物单 + * @return + */ + @Override + public Map createReturnApplication(String applicant, + Long borrowApplicationId, Map applyReturnTousses, + ReturnGoodVo returnGoodVo, boolean isCreateReturnApplication) { + RecyclingApplication borrowApplication = (RecyclingApplication) objectDao + .getByProperty_ForUpdate(RecyclingApplication.class.getSimpleName(), + "id", borrowApplicationId); + return createReturnApplication(applicant, borrowApplication, applyReturnTousses, returnGoodVo, isCreateReturnApplication); + } /** * 创建申请还物单